# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
973947 | PagodePaiva | Sorting (IOI15_sorting) | C++17 | 5 ms | 604 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 p[], int q[]) {
for(int i = 0;i < m;i++) p[i] = q[i] = 0;
vector <int> v;
for(int i = 0;i < n;i++){
v.push_back(i);
}
for(int i = n-1;i >= 0;i--){
swap(v[x[i]], v[y[i]]);
}
int res = 0;
for(int i = 0;i < n;i++){
// for(int j = 0;j < n;j++) {
// cout << v[j] << ' ';
// }
// cout << '\n';
bool aux = true;
for(int j = 1;j < n;j++){
if(s[j] < s[j-1]) aux = false;
}
if(aux) break;
swap(v[x[i]], v[y[i]]);
swap(s[x[i]], s[y[i]]);
int poss, posv;
for(int j = 0;j < n;j++){
if(s[j] == i) poss = j;
if(v[j] == i) posv = j;
}
p[i] = poss;
q[i] = posv;
swap(s[poss], s[posv]);
res++;
}
// for(int j = 0;j < n;j++) cout << v[j] << ' ';
// cout << "\n";
// for(int j = 0;j < n;j++) cout << s[j] << ' ';
return res;
}
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... |