Untitled
unknown
c_cpp
4 years ago
2.6 kB
6
Indexable
#include <bits/stdc++.h> using namespace std; typedef long long ll; bool wayToSort(string s1, string s2) { if (s1.length() < s2.length()) return true; if (s2.length() < s1.length()) return false; else return (s1 < s2); } int main() { int t; cin >> t; while (t--) { int n; cin >> n; int numbers[200001] = {0}; for (int i = 0; i < n; i++) { cin >> numbers[i]; } int start = 0, end = n - 1; bool seen = false; int c1 = 0, c2 = 0; while (start < end) { if (numbers[start] != numbers[end]) { c1 = numbers[start]; c2 = numbers[end]; break; } start++; end--; } start = 0, end = n - 1; bool first = true; while (start < end) { if (numbers[start] != numbers[end] && numbers[start] == c1) { start++; } else if (numbers[start] != numbers[end] && numbers[end] == c1) { end--; } else if (numbers[start] != numbers[end]) { first = false; break; } else { start++; end--; } } start = 0, end = n - 1; bool second = true; while (start < end) { if (numbers[start] != numbers[end] && numbers[start] == c2) { start++; } else if (numbers[start] != numbers[end] && numbers[end] == c2) { end--; } else if (numbers[start] != numbers[end]) { second = false; break; } else { start++; end--; } } if (first || second || n == 2) { cout << "YES\n"; } else { cout << "NO\n"; } } return 0; }
Editor is loading...