이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "sorting.h"
#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 200000;
int *p, *q, *s;
int top;
int poz[MAX_N];
int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[]) {
p = P;
q = Q;
s = S;
for(int i = 0; i < N; ++i)
poz[i] = i;
for(int i = 0; i < M; ++i)
swap(poz[X[i]], poz[Y[i]]);
for(int i = M - 1; i >= 0; --i) {
int j = 0;
while(j < N && poz[j] == S[j])
++j;
if(j == N) { // we did it boys
P[top] = 0;
Q[top++] = 0;
} else {
int k = 0;
while(k < N && poz[k] != S[j])
++k;
P[top] = j;
Q[top++] = k;
swap(S[j], S[k]);
}
}
reverse(P, P + top);
reverse(Q, Q + top);
return top;
}
# | 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... |