이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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... |