# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
531667 | antonioqbab | Sorting (IOI15_sorting) | C++14 | 1 ms | 300 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 <bits/stdc++.h>
#include <sorting.h>
using namespace std;
int findSwapPairs(int n, int s[], int m, int x[], int y[], int s1[], int s2[]){
vector<int> p(n);
for(int i=0;i<n;++i)
p[i]=s[i];
int left=0, right=n-1;
auto ok=[&](int pos){
auto p_=p;
for(int i=0;i<=pos;++i)
swap(p_[x[i]],p_[y[i]]);
int ans = n;
vector<int> seen(n);
for(int i=0;i<n;++i)
if(!seen[i]){
--ans;
seen[i]=1;
for(int j=p_[i];j!=i;j=p_[j])
seen[j]=1;
}
return ans <= pos+1;
};
while(left<right){
int m=(left+right)/2;
if(ok(m))
right = m;
else
left = m + 1;
}
return left;
}
Compilation message (stderr)
# | 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... |