Advertisement
VladSmirN

Untitled

Sep 17th, 2020
324
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.06 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. bool  check(int i, vector<int>&a){
  5.     if(i == 0){
  6.         if(a[0]<=a[1])
  7.             return true;}
  8.     else
  9.     if(a.size()-1 == i){
  10.         if(a[a.size()-1]>=a[a.size()-2])
  11.               return true;}
  12.      else
  13.         if(a[i-1]<=a[i] && a[i+1]>=a[i])
  14.             return true;
  15.     return false;
  16. }
  17.  
  18. void update_balans(int i, vector<int>&a,vector<bool>&b,int &balans){
  19.     if(check(i,a)){
  20.         if(!b[i]){
  21.             balans++;
  22.             b[i]=true;
  23.         }
  24.     }else{
  25.         if(b[i]){
  26.             balans--;
  27.             b[i]=false;
  28.         }
  29.     }
  30.  
  31. }
  32.  
  33. int main()
  34. {
  35.  
  36.  
  37.   //  ifstream file("data.txt");
  38.  
  39.    int n,q;
  40.  cin >>  n >> q;
  41.  vector<int>a(n);
  42.  vector<bool>b(n,false);
  43.  for(int i =0;i<n;++i){
  44.      cin >> a[i];
  45.  }
  46.  int balans = 0;
  47.  
  48.  
  49.  for(int i = 0;i<n;++i){
  50.          if(check(i,a)){
  51.            balans++;
  52.            b[i] = true;
  53.          }
  54.  
  55.  }
  56. /*for(int i =0;i<n;++i){
  57.      cout << a[i]<< " " ;
  58.  }
  59.     cout<<endl;
  60.  for(int i =0;i<n;++i){
  61.      cout << b[i]<<" ";
  62.  }
  63.   cout<<endl<<balans;
  64.    */
  65.  
  66.   int c1,c2;
  67.   for(int i  =0 ; i < q ;++i){
  68.       cin>>c1>>c2;
  69.       c1--;
  70.       c2--;
  71.       swap(a[c1],a[c2]);
  72.  
  73.        if(c1 == 0 ){
  74.         update_balans(c1,a,b,balans);
  75.         update_balans(c1+1,a,b,balans);
  76.        }else
  77.       if(c1 == a.size()-1){
  78.         update_balans(c1,a,b,balans);
  79.         update_balans(c1-1,a,b,balans);
  80.       }else{
  81.         update_balans(c1,a,b,balans);
  82.         update_balans(c1-1,a,b,balans);
  83.         update_balans(c1+1,a,b,balans);
  84.       }
  85.       if(c2 == 0 ){
  86.         update_balans(c2,a,b,balans);
  87.         update_balans(c2+1,a,b,balans);
  88.        }else
  89.       if(c2 == a.size()-1){
  90.         update_balans(c2,a,b,balans);
  91.         update_balans(c2-1,a,b,balans);
  92.       }else{
  93.         update_balans(c2,a,b,balans);
  94.         update_balans(c2-1,a,b,balans);
  95.         update_balans(c2+1,a,b,balans);
  96.       }
  97.  
  98.     if(balans == a.size()){
  99.         cout<<"Sorted!"<<endl;
  100.     }else
  101.         cout<<"Unsorted!"<<endl;
  102.  
  103.  
  104.   }
  105.  
  106.     return 0;
  107. }
  108.  
  109.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement