This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
#define for2(a,b,c) for(int a=b;a<c;a++)
#include "sorting.h"
int findSwapPairs(int n, int s[], int M, int X[], int Y[], int P[], int Q[]) {
vector<int> S(n);
for2(i,0,n) S[i] = s[i];
int r = 0;
for(int cur = n-1; cur >= 0; cur--){
if(is_sorted(S.begin(),S.end())){
break;
}
swap(S[X[r]],S[Y[r]]);
for2(i,0,n) if(S[i] == cur){
P[r] = min(i,cur);
Q[r] = max(i,cur);
swap(S[i],S[cur]);
r++;
break;
}
}
if(S[0] != 0){
swap(S[X[r]],S[Y[r]]);
P[r] =Q[r] = 0;
r++;
}
if(r > M){
assert(1);
assert(0);
}
if(!is_sorted(S.begin(),S.end())) { assert(0); assert(1);}
return r;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |