Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip>
- #include <cmath>
- #include <algorithm>
- using namespace std;
- int main() {
- ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
- int n,m;
- cin >> n >> m;
- int arr[n];
- int idx[n];
- for (int i=0; i<n; i++) {
- cin >> arr[i];
- idx[arr[i]]=i;
- }
- int ans=1;
- for (int j=1; j<n; j++) {
- //if (arr[j]<arr[j-1]) ans++;
- //if (find(arr, arr+n, j) > find(arr, arr+n, j+1))
- if (idx[j]>idx[j+1])
- ans++;
- }
- //cout << ans << endl;
- for (int i=0; i<m; i++) {
- int x,y;
- cin >> x >> y;
- if (x>y) swap(x,y);
- x--;
- y--;
- // int mn=min(arr[x], arr[y]);
- // int pre=mn--;
- // int xy=0;
- // if (mn>1) {
- // if (idx[mn]>idx[pre]) xy=1;
- // }
- swap(arr[x], arr[y]);
- int xx=0;
- int yy=0;
- if (arr[x]!=n && idx[arr[x]]<idx[arr[x]+1]) xx++;
- if (arr[x]!=1 && idx[arr[x]]>idx[arr[x]-1]) xx++;
- if (arr[y]!=n && idx[arr[y]]<idx[arr[y]+1]) yy++;
- if (arr[y]!=1 && idx[arr[y]]>idx[arr[y]-1]) yy++;
- swap(idx[arr[x]], idx[arr[y]]);
- //cout << idx[arr[y]] << idx[mn];
- int xxx=0;
- int yyy=0;
- int xxyy=0;
- // if (mn>1) {
- // if (idx[mn]>idx[pre]) xxyy=1;
- // }
- if (arr[x]!=n && idx[arr[x]]<idx[arr[x]+1]) xxx++;
- if (arr[x]!=1 && idx[arr[x]]>idx[arr[x]-1]) xxx++;
- if (arr[y]!=n && idx[arr[y]]<idx[arr[y]+1]) yyy++;
- if (arr[y]!=1 && idx[arr[y]]>idx[arr[y]-1]) yyy++;
- // if (idx[arr[x]]<idx[arr[x]+1]) xxx++;
- // if (idx[arr[y]]<idx[arr[y]+1]) yyy++;
- //cout << xy << " " << xxyy << endl;
- //cout << xx << " " << yyy << " " << yy << " " << xxx << endl;
- ans+= (xx-yyy);
- ans+= (yy-xxx);
- //ans-= xy-xxyy;
- // if (xxx>yy) ans--;
- // else if(xxx<y)ans++;
- // int k=0;
- // while (k<n) {
- // for (int j=0; j<n; j++) {
- // if (arr[j]==k+1) {
- // k++;
- // //cout << k << " ";
- // }
- // }
- // //cout << k << " " << ans << " ";
- // ans++;
- // }
- cout << ans << endl;
- }
- return 0;
- /*
- 6 6
- 4 5 2 3 1 6
- 1 3
- 3 6
- 1 3
- 3 6
- 5 2
- 1 4
- */
- }
Advertisement
Add Comment
Please, Sign In to add comment