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;
#include "sorting.h"
#define pb push_back
#define mp make_pair
vector < int > V[1003];
pair < int , int > mx;
int findSwapPairs(int n, int *S, int m, int *X, int *Y, int *P, int *Q){
int i,j;
for(i=0;i<m;i++){
V[ X[i] ].pb(i);
V[ Y[i] ].pb(i);
}
for(j=0;j<n;j++) V[j].pb(m);
for(i=0;i<m;i++){
swap(S[ X[i] ], S[ Y[i] ]);
mx = mp(-1,-1);
for(j=0;j<n;j++)
if(S[j] != j)
mx = max(mx , mp(*upper_bound(V[ S[j] ].begin() , V[ S[j] ].end() , i),j));
if(mx.first == -1) return i+1;
j = mx.second;
P[i] = j;
Q[i] = S[j];
swap(S[j],S[ S[j] ]);
}
return m;
}
# | 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... |