Untitled
unknown
c_cpp
4 years ago
2.6 kB
9
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...