# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
133669 | 2019-07-21T08:13:40 Z | MAMBA | Sorting (IOI15_sorting) | C++17 | 598 ms | 14328 KB |
#include "sorting.h" #include <bits/stdc++.h> using namespace std; #define rep(i , j , k) for (int i = j; i < (int)k; i++) const int MAXN = 2e5 + 10; int p[MAXN], q[MAXN], arr[MAXN], rra[MAXN]; int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[]) { auto check = [&](int lim) -> bool { iota(p , p + N , 0); iota(q , q + N , 0); memcpy(arr , S , N * 4); rep(i , 0 , N) rra[arr[i]] = i; for(int i = lim - 1; ~i; i--) { if (X[i] == Y[i]) continue; swap(p[X[i]] , p[Y[i]]); swap(q[p[X[i]]] , q[p[Y[i]]]); } int ptr = 0, cnt = 0; for(int i = 0; i < lim; i++) { if (X[i] != Y[i]) { swap(p[X[i]] , p[Y[i]]); swap(q[p[X[i]]] , q[p[Y[i]]]); swap(arr[X[i]] , arr[Y[i]]); swap(rra[arr[X[i]]] , rra[arr[Y[i]]]); } while (ptr < N && arr[q[ptr]] == ptr) { ptr++; } if (ptr < N) { int pos = rra[ptr]; // as pos bayad bere be q[ptr] int sop = q[ptr]; P[cnt] = pos; Q[cnt++] = sop; swap(arr[pos] , arr[sop]); swap(rra[arr[pos]] , rra[arr[sop]]); } } while (ptr < N && arr[q[ptr]] == ptr) { ptr++; } while (cnt < N) { P[cnt] = Q[cnt] = 0; cnt++; } return ptr == N; }; int l = -1 , r = N; while (l != r - 1) { int mid = l + r >> 1; if (check(mid)) r = mid; else l = mid; } check(r); return r; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 376 KB | Output is correct |
3 | Correct | 2 ms | 504 KB | Output is correct |
4 | Correct | 2 ms | 376 KB | Output is correct |
5 | Correct | 2 ms | 376 KB | Output is correct |
6 | Correct | 2 ms | 376 KB | Output is correct |
7 | Correct | 2 ms | 376 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 376 KB | Output is correct |
3 | Correct | 2 ms | 504 KB | Output is correct |
4 | Correct | 2 ms | 376 KB | Output is correct |
5 | Correct | 2 ms | 376 KB | Output is correct |
6 | Correct | 2 ms | 376 KB | Output is correct |
7 | Correct | 2 ms | 376 KB | Output is correct |
8 | Correct | 2 ms | 376 KB | Output is correct |
9 | Correct | 2 ms | 376 KB | Output is correct |
10 | Correct | 2 ms | 424 KB | Output is correct |
11 | Correct | 2 ms | 348 KB | Output is correct |
12 | Correct | 2 ms | 376 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 376 KB | Output is correct |
3 | Correct | 2 ms | 376 KB | Output is correct |
4 | Correct | 2 ms | 376 KB | Output is correct |
5 | Correct | 2 ms | 380 KB | Output is correct |
6 | Correct | 2 ms | 376 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 376 KB | Output is correct |
3 | Correct | 2 ms | 504 KB | Output is correct |
4 | Correct | 2 ms | 376 KB | Output is correct |
5 | Correct | 2 ms | 376 KB | Output is correct |
6 | Correct | 2 ms | 376 KB | Output is correct |
7 | Correct | 2 ms | 376 KB | Output is correct |
8 | Correct | 2 ms | 376 KB | Output is correct |
9 | Correct | 2 ms | 376 KB | Output is correct |
10 | Correct | 2 ms | 424 KB | Output is correct |
11 | Correct | 2 ms | 348 KB | Output is correct |
12 | Correct | 2 ms | 376 KB | Output is correct |
13 | Correct | 2 ms | 376 KB | Output is correct |
14 | Correct | 2 ms | 376 KB | Output is correct |
15 | Correct | 2 ms | 376 KB | Output is correct |
16 | Correct | 2 ms | 376 KB | Output is correct |
17 | Correct | 2 ms | 380 KB | Output is correct |
18 | Correct | 2 ms | 376 KB | Output is correct |
19 | Correct | 2 ms | 376 KB | Output is correct |
20 | Correct | 2 ms | 376 KB | Output is correct |
21 | Correct | 3 ms | 632 KB | Output is correct |
22 | Correct | 3 ms | 504 KB | Output is correct |
23 | Correct | 3 ms | 632 KB | Output is correct |
24 | Correct | 3 ms | 504 KB | Output is correct |
25 | Correct | 3 ms | 504 KB | Output is correct |
26 | Correct | 3 ms | 632 KB | Output is correct |
27 | Correct | 3 ms | 504 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 504 KB | Output is correct |
2 | Correct | 3 ms | 504 KB | Output is correct |
3 | Correct | 4 ms | 632 KB | Output is correct |
4 | Correct | 3 ms | 508 KB | Output is correct |
5 | Correct | 3 ms | 504 KB | Output is correct |
6 | Correct | 3 ms | 504 KB | Output is correct |
7 | Correct | 3 ms | 504 KB | Output is correct |
8 | Correct | 4 ms | 504 KB | Output is correct |
9 | Correct | 4 ms | 452 KB | Output is correct |
10 | Correct | 4 ms | 504 KB | Output is correct |
11 | Correct | 4 ms | 504 KB | Output is correct |
12 | Correct | 3 ms | 504 KB | Output is correct |
13 | Correct | 4 ms | 504 KB | Output is correct |
14 | Correct | 3 ms | 504 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 504 KB | Output is correct |
2 | Correct | 3 ms | 504 KB | Output is correct |
3 | Correct | 4 ms | 632 KB | Output is correct |
4 | Correct | 3 ms | 508 KB | Output is correct |
5 | Correct | 3 ms | 504 KB | Output is correct |
6 | Correct | 3 ms | 504 KB | Output is correct |
7 | Correct | 3 ms | 504 KB | Output is correct |
8 | Correct | 4 ms | 504 KB | Output is correct |
9 | Correct | 4 ms | 452 KB | Output is correct |
10 | Correct | 4 ms | 504 KB | Output is correct |
11 | Correct | 4 ms | 504 KB | Output is correct |
12 | Correct | 3 ms | 504 KB | Output is correct |
13 | Correct | 4 ms | 504 KB | Output is correct |
14 | Correct | 3 ms | 504 KB | Output is correct |
15 | Correct | 270 ms | 12872 KB | Output is correct |
16 | Correct | 423 ms | 13176 KB | Output is correct |
17 | Correct | 547 ms | 13688 KB | Output is correct |
18 | Correct | 92 ms | 11000 KB | Output is correct |
19 | Correct | 323 ms | 12672 KB | Output is correct |
20 | Correct | 364 ms | 13048 KB | Output is correct |
21 | Correct | 396 ms | 13024 KB | Output is correct |
22 | Correct | 233 ms | 14072 KB | Output is correct |
23 | Correct | 264 ms | 14152 KB | Output is correct |
24 | Correct | 563 ms | 14044 KB | Output is correct |
25 | Correct | 598 ms | 13788 KB | Output is correct |
26 | Correct | 360 ms | 13020 KB | Output is correct |
27 | Correct | 315 ms | 12664 KB | Output is correct |
28 | Correct | 525 ms | 13868 KB | Output is correct |
29 | Correct | 500 ms | 13680 KB | Output is correct |
30 | Correct | 222 ms | 12280 KB | Output is correct |
31 | Correct | 502 ms | 13816 KB | Output is correct |
32 | Correct | 318 ms | 13944 KB | Output is correct |
33 | Correct | 575 ms | 14020 KB | Output is correct |
34 | Correct | 435 ms | 14076 KB | Output is correct |
35 | Correct | 318 ms | 12540 KB | Output is correct |
36 | Correct | 74 ms | 11640 KB | Output is correct |
37 | Correct | 580 ms | 14328 KB | Output is correct |
38 | Correct | 515 ms | 13688 KB | Output is correct |
39 | Correct | 573 ms | 13944 KB | Output is correct |