# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
31821 | 2017-09-10T13:40:01 Z | top34051 | Sorting (IOI15_sorting) | C++14 | 7 ms | 512 KB |
#include "sorting.h" #include<bits/stdc++.h> using namespace std; #define maxn 2005 int n, s[maxn]; int a[maxn], pos[maxn]; pair<int,int> sw[maxn]; int get(int rec) { int i,x,cnt; for(i=0;i<n;i++) a[i] = s[i]; for(i=0;i<n;i++) pos[a[i]] = i; cnt = 0; for(i=0;i<n;i++) { x = pos[i]; if(i!=x) { pos[a[i]] = x; swap(a[i], a[x]); if(rec) sw[cnt] = {a[i],a[x]}; cnt++; } } return cnt; } bool check(int x,int S[],int X[],int Y[]) { int i; for(i=0;i<n;i++) s[i] = S[i]; for(i=0;i<=x;i++) swap(s[X[i]], s[Y[i]]); if(get(0)<=x+1) return 1; else return 0; } int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[]) { int i,x,now,l,r,mid; n = N; for(i=0;i<n;i++) s[i] = S[i]; l = -1; r = N; while(l<=r) { mid = (l+r)/2; if(check(mid,S,X,Y)) now = mid, r = mid-1; else l = mid+1; } get(1); for(i=0;i<n;i++) s[i] = S[i]; for(i=0;i<now+1;i++) { swap(s[X[i]], s[Y[i]]); for(x=0;x<n;x++) { if(s[x]==sw[i].first) P[i] = x; if(s[x]==sw[i].second) Q[i] = x; } swap(s[P[i]], s[Q[i]]); } return now+1; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 384 KB | Output is correct |
2 | Correct | 3 ms | 384 KB | Output is correct |
3 | Correct | 3 ms | 384 KB | Output is correct |
4 | Correct | 2 ms | 384 KB | Output is correct |
5 | Correct | 3 ms | 384 KB | Output is correct |
6 | Correct | 2 ms | 384 KB | Output is correct |
7 | Correct | 2 ms | 384 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 384 KB | Output is correct |
2 | Correct | 3 ms | 384 KB | Output is correct |
3 | Correct | 3 ms | 384 KB | Output is correct |
4 | Correct | 2 ms | 384 KB | Output is correct |
5 | Correct | 3 ms | 384 KB | Output is correct |
6 | Correct | 2 ms | 384 KB | Output is correct |
7 | Correct | 2 ms | 384 KB | Output is correct |
8 | Correct | 3 ms | 384 KB | Output is correct |
9 | Correct | 2 ms | 384 KB | Output is correct |
10 | Correct | 2 ms | 384 KB | Output is correct |
11 | Correct | 3 ms | 384 KB | Output is correct |
12 | Correct | 2 ms | 384 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 384 KB | Output is correct |
2 | Correct | 2 ms | 384 KB | Output is correct |
3 | Incorrect | 3 ms | 384 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 384 KB | Output is correct |
2 | Correct | 3 ms | 384 KB | Output is correct |
3 | Correct | 3 ms | 384 KB | Output is correct |
4 | Correct | 2 ms | 384 KB | Output is correct |
5 | Correct | 3 ms | 384 KB | Output is correct |
6 | Correct | 2 ms | 384 KB | Output is correct |
7 | Correct | 2 ms | 384 KB | Output is correct |
8 | Correct | 3 ms | 384 KB | Output is correct |
9 | Correct | 2 ms | 384 KB | Output is correct |
10 | Correct | 2 ms | 384 KB | Output is correct |
11 | Correct | 3 ms | 384 KB | Output is correct |
12 | Correct | 2 ms | 384 KB | Output is correct |
13 | Correct | 3 ms | 384 KB | Output is correct |
14 | Correct | 2 ms | 384 KB | Output is correct |
15 | Incorrect | 3 ms | 384 KB | Output isn't correct |
16 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 7 ms | 512 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 7 ms | 512 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |