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 "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 = M - 1; i >= 0; --i)
swap(poz[X[i]], poz[Y[i]]);
for(int i = 0; i < M; ++i) {
swap(poz[X[i]], poz[Y[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;
return top;
} else {
int k = 0;
while(k < N && poz[k] != S[j])
++k;
P[top] = j;
Q[top++] = k;
swap(S[j], S[k]);
}
}
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... |