Untitled

 avatar
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...