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