Advertisement
Guest User

Untitled

a guest
Jun 27th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.79 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     freopen("input.txt", "r", stdin);
  10.     int m;
  11.     cin >> m;
  12.     for(int k = 0; k < m; k++)
  13.     {
  14.         int n;
  15.         cin >> n;
  16.         vector<int> a(n);
  17.         for(int i = 0; i < n; i++)
  18.             cin >> a[i];
  19.  
  20.         vector<int> b = a;
  21.         sort(b.begin(), b.end());
  22.  
  23.         int del;
  24.         int j = 0;
  25.         bool flag = false, ans = true;
  26.  
  27.         for(int i = 0; i < n; i++)
  28.         {
  29.             if(!flag && j < n && a[i] != b[j])
  30.             {
  31.                 del = b[j];
  32.                 flag = true;
  33.                 j++;
  34.                 if(i != n - 1 && a[i] != b[j])
  35.                     ans = false;
  36.             }
  37.  
  38.             if(flag && a[i] != del && a[i] != b[j])
  39.             {
  40.                 ans = false;
  41.                 break;
  42.             }
  43.             j++;
  44.  
  45.             if(flag && a[i] == del)
  46.                 j--;
  47.         }
  48.  
  49.         if(ans)
  50.         {
  51.             cout << "YES" << endl;
  52.             continue;
  53.         }
  54.  
  55.         j = 0;
  56.         flag = false; ans = true;
  57.  
  58.         reverse(b.begin(), b.end());
  59.         for(int i = 0; i < n; i++)
  60.         {
  61.             if(!flag && j < n && a[i] != b[j])
  62.             {
  63.                 del = b[j];
  64.                 flag = true;
  65.                 j++;
  66.                 if(i != n - 1 && a[i] != b[j])
  67.                     ans = false;
  68.             }
  69.  
  70.             if(flag && a[i] != del && a[i] != b[j])
  71.             {
  72.                 ans = false;
  73.                 break;
  74.             }
  75.             j++;
  76.  
  77.             if(flag && a[i] == del)
  78.                 j--;
  79.         }
  80.  
  81.         if(ans)
  82.             cout << "YES" << endl;
  83.         else
  84.             cout << "NO" << endl;
  85.     }
  86.     return 0;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement