# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
572019 | CSQ31 | Sorting (IOI15_sorting) | C++17 | 169 ms | 20524 KiB |
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;
//let K_i = n-number of cycles at step i
//f(i) = max(i,K_i) is non decreasing
const int MAXN = 2e5+1;
bool vis[MAXN];
int p[MAXN],q[MAXN];
void change(int i,int j){
int a = p[i];
int b = p[j];
q[a] = j;
q[b] = i;
swap(p[i],p[j]);
}
int findSwapPairs(int n, int S[], int M, int X[], int Y[], int P[], int Q[]) {
vector<int>s(n);
int idx = 0;
bool ok = 1;
for(int i=0;i<n;i++)if(S[i] != i)ok = 0;
if(ok)return 0;
for(int i=0;i<n;i++)s[i] = S[i];
int l = 0,r = M-1;
while(r>=l){
int mid = (l+r)/2;
for(int i=0;i<n;i++)S[i] = s[i];
for(int i=0;i<=mid;i++)swap(S[X[i]],S[Y[i]]);
int cost = n;
for(int j=0;j<n;j++)vis[j] = 0;
for(int j=0;j<n;j++){
# | 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... |