# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
432988 | 2021-06-18T17:07:47 Z | wiwiho | Sorting (IOI15_sorting) | C++14 | 1000 ms | 15728 KB |
#include "sorting.h" #include <bits/stdc++.h> #define printv(a, b) { \ for(auto pv : a) b << pv << " "; \ b << "\n"; \ } #define mp make_pair #define F first #define Sc second #define eb emplace_back using namespace std; typedef long long ll; using pii = pair<int, int>; const ll MOD = 1000000007; vector<pii> ans; bool calc(int n, int S[], int m, int X[], int Y[]){ ans.clear(); vector<int> s(n); for(int i = 0; i < n; i++) s[i] = S[i]; vector<int> num(n); vector<int> pos(n); for(int i = 0; i < n; i++) num[i] = pos[i] = i; for(int i = 0; i < m; i++){ swap(num[pos[X[i]]], num[pos[Y[i]]]); swap(pos[X[i]], pos[Y[i]]); } int cnt = 0; vector<int> now(n), np(n); for(int i = 0; i < n; i++) now[i] = i, np[i] = i; for(int i = 0; i < n; i++){ while(s[i] != num[i]){ if(cnt >= m) return false; swap(now[np[X[cnt]]], now[np[Y[cnt]]]); swap(np[X[cnt]], np[Y[cnt]]); cnt++; ans.eb(mp(now[i], now[pos[s[i]]])); swap(s[i], s[pos[s[i]]]); } } while(ans.size() < m) ans.eb(mp(0, 0)); //cerr << "test " << m << "\n"; //printv(num, cerr); //printv(s, cerr); return true; } int findSwapPairs(int n, int S[], int m, int X[], int Y[], int P[], int Q[]) { int mn = m + 1, mnp = -1; for(int i = 0; i < mn; i++){ bool tmp = calc(n, S, i, X, Y); if(tmp){ if(ans.size() < mn){ mn = ans.size(); mnp = i; } } else assert(mnp == -1); } calc(n, S, mnp, X, Y); for(int i = 0; i < ans.size(); i++){ P[i] = ans[i].F; Q[i] = ans[i].Sc; } return ans.size(); }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 0 ms | 204 KB | Output is correct |
3 | Correct | 1 ms | 204 KB | Output is correct |
4 | Correct | 1 ms | 204 KB | Output is correct |
5 | Correct | 1 ms | 288 KB | Output is correct |
6 | Correct | 1 ms | 204 KB | Output is correct |
7 | Correct | 0 ms | 204 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 0 ms | 204 KB | Output is correct |
3 | Correct | 1 ms | 204 KB | Output is correct |
4 | Correct | 1 ms | 204 KB | Output is correct |
5 | Correct | 1 ms | 288 KB | Output is correct |
6 | Correct | 1 ms | 204 KB | Output is correct |
7 | Correct | 0 ms | 204 KB | Output is correct |
8 | Correct | 1 ms | 204 KB | Output is correct |
9 | Correct | 1 ms | 204 KB | Output is correct |
10 | Correct | 1 ms | 332 KB | Output is correct |
11 | Correct | 1 ms | 332 KB | Output is correct |
12 | Correct | 1 ms | 332 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 332 KB | Output is correct |
2 | Correct | 1 ms | 204 KB | Output is correct |
3 | Correct | 1 ms | 304 KB | Output is correct |
4 | Correct | 1 ms | 332 KB | Output is correct |
5 | Correct | 1 ms | 296 KB | Output is correct |
6 | Correct | 1 ms | 204 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 0 ms | 204 KB | Output is correct |
3 | Correct | 1 ms | 204 KB | Output is correct |
4 | Correct | 1 ms | 204 KB | Output is correct |
5 | Correct | 1 ms | 288 KB | Output is correct |
6 | Correct | 1 ms | 204 KB | Output is correct |
7 | Correct | 0 ms | 204 KB | Output is correct |
8 | Correct | 1 ms | 204 KB | Output is correct |
9 | Correct | 1 ms | 204 KB | Output is correct |
10 | Correct | 1 ms | 332 KB | Output is correct |
11 | Correct | 1 ms | 332 KB | Output is correct |
12 | Correct | 1 ms | 332 KB | Output is correct |
13 | Correct | 1 ms | 332 KB | Output is correct |
14 | Correct | 1 ms | 204 KB | Output is correct |
15 | Correct | 1 ms | 304 KB | Output is correct |
16 | Correct | 1 ms | 332 KB | Output is correct |
17 | Correct | 1 ms | 296 KB | Output is correct |
18 | Correct | 1 ms | 204 KB | Output is correct |
19 | Correct | 1 ms | 204 KB | Output is correct |
20 | Correct | 1 ms | 204 KB | Output is correct |
21 | Correct | 6 ms | 440 KB | Output is correct |
22 | Correct | 6 ms | 460 KB | Output is correct |
23 | Correct | 7 ms | 460 KB | Output is correct |
24 | Correct | 5 ms | 460 KB | Output is correct |
25 | Correct | 2 ms | 460 KB | Output is correct |
26 | Correct | 3 ms | 460 KB | Output is correct |
27 | Correct | 6 ms | 460 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 68 ms | 444 KB | Output is correct |
2 | Correct | 74 ms | 448 KB | Output is correct |
3 | Correct | 73 ms | 460 KB | Output is correct |
4 | Correct | 1 ms | 332 KB | Output is correct |
5 | Correct | 3 ms | 460 KB | Output is correct |
6 | Correct | 7 ms | 452 KB | Output is correct |
7 | Correct | 38 ms | 572 KB | Output is correct |
8 | Correct | 76 ms | 452 KB | Output is correct |
9 | Correct | 70 ms | 460 KB | Output is correct |
10 | Correct | 78 ms | 564 KB | Output is correct |
11 | Correct | 64 ms | 460 KB | Output is correct |
12 | Correct | 38 ms | 464 KB | Output is correct |
13 | Correct | 91 ms | 460 KB | Output is correct |
14 | Correct | 1 ms | 376 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 68 ms | 444 KB | Output is correct |
2 | Correct | 74 ms | 448 KB | Output is correct |
3 | Correct | 73 ms | 460 KB | Output is correct |
4 | Correct | 1 ms | 332 KB | Output is correct |
5 | Correct | 3 ms | 460 KB | Output is correct |
6 | Correct | 7 ms | 452 KB | Output is correct |
7 | Correct | 38 ms | 572 KB | Output is correct |
8 | Correct | 76 ms | 452 KB | Output is correct |
9 | Correct | 70 ms | 460 KB | Output is correct |
10 | Correct | 78 ms | 564 KB | Output is correct |
11 | Correct | 64 ms | 460 KB | Output is correct |
12 | Correct | 38 ms | 464 KB | Output is correct |
13 | Correct | 91 ms | 460 KB | Output is correct |
14 | Correct | 1 ms | 376 KB | Output is correct |
15 | Execution timed out | 1072 ms | 15728 KB | Time limit exceeded |
16 | Halted | 0 ms | 0 KB | - |