# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1034767 | 2024-07-25T17:38:59 Z | ArthuroWich | 곤돌라 (IOI14_gondola) | C++17 | 1000 ms | 5752 KB |
#include "gondola.h" #include <bits/stdc++.h> using namespace std; int valid(int n, int gondolaSeq[]) { int mi = INT_MAX, ind = -1; set<int> c; for (int i = 0; i < n; i++) { c.insert(gondolaSeq[i]); if (mi > gondolaSeq[i]) { mi = gondolaSeq[i]; ind = i; } } if (c.size() < n) { return 0; } if (mi > n) { return 1; } ind -= (mi-1); ind += n; ind %= n; vector<int> a; for (int i = ind; i < n; i++) { a.push_back(gondolaSeq[i]); } for (int i = 0; i < ind; i++) { a.push_back(gondolaSeq[i]); } for (int i = 0; i < n; i++) { if (a[i] <= n && a[i] != i+1) { return 0; } } return 1; } int replacement(int n, int gondolaSeq[], int replacementSeq[]) { int mi = INT_MAX, ind = -1, ma = 0; set<int> c; for (int i = 0; i < n; i++) { ma = max(ma, gondolaSeq[i]); c.insert(gondolaSeq[i]); if (mi > gondolaSeq[i]) { mi = gondolaSeq[i]; ind = i; } } vector<pair<int, int>> num; if (ma <= n) { return 0; } if (mi > n) { for (int i = 0; i < n; i++) { num.push_back({gondolaSeq[i], i+1}); } int l = 0; sort(num.begin(), num.end()); l = num.back().first-n; for (int i = 0; i < l; i++) { replacementSeq[i] = num.back().second; } for (int i = 0; i < num.size(); i++) { replacementSeq[num[i].first-n-1] = num[i].second; } vector<int> ans(n+1, 0); for (int i = 1; i <= n; i++) { ans[i] = i; } for (int i = 0; i < l; i++) { int v = replacementSeq[i]; replacementSeq[i] = ans[replacementSeq[i]]; ans[v] = n+i+1; } return l; } else { ind -= (mi-1); ind += n; ind %= n; vector<int> a; for (int i = ind; i < n; i++) { a.push_back(gondolaSeq[i]); } for (int i = 0; i < ind; i++) { a.push_back(gondolaSeq[i]); } for (int i = 0; i < n; i++) { if (a[i] > n) { num.push_back({a[i], i+1}); } } int l = 0; sort(num.begin(), num.end()); l = num.back().first-n; for (int i = 0; i < l; i++) { replacementSeq[i] = num.back().second; } for (int i = 0; i < num.size(); i++) { replacementSeq[num[i].first-n-1] = num[i].second; } vector<int> ans(n+1, 0); for (int i = 1; i <= n; i++) { ans[i] = i; } for (int i = 0; i < l; i++) { int v = replacementSeq[i]; replacementSeq[i] = ans[replacementSeq[i]]; ans[v] = n+i+1; } return l; } } int countReplacement(int n, int gondolaSeq[]) { if (!valid(n, gondolaSeq)) { return 0; } vector<int> num; long long int ans = 1, mod = 1000000009; bool f = 0; for (int i = 0; i < n; i++) { if (gondolaSeq[i] > n) { num.push_back(gondolaSeq[i]); } } if (num.size() == n) { ans = num.size(); } if (num.size() == 0) { return ans; } sort(num.rbegin(), num.rend()); int l = n+1; while(num.size() > 0) { if (num.back() == l) { if (f) { ans *= num.size(); ans %= mod; } num.pop_back(); l++; } else { ans *= (long long int) num.size(); ans %= mod; l++; } } return ans; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 0 ms | 348 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 0 ms | 348 KB | Output is correct |
5 | Correct | 0 ms | 440 KB | Output is correct |
6 | Correct | 10 ms | 2876 KB | Output is correct |
7 | Correct | 19 ms | 4184 KB | Output is correct |
8 | Correct | 14 ms | 5080 KB | Output is correct |
9 | Correct | 7 ms | 1884 KB | Output is correct |
10 | Correct | 18 ms | 5592 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 0 ms | 440 KB | Output is correct |
5 | Correct | 1 ms | 444 KB | Output is correct |
6 | Correct | 8 ms | 2904 KB | Output is correct |
7 | Correct | 21 ms | 4188 KB | Output is correct |
8 | Correct | 14 ms | 5036 KB | Output is correct |
9 | Correct | 5 ms | 1884 KB | Output is correct |
10 | Correct | 21 ms | 5584 KB | Output is correct |
11 | Correct | 0 ms | 348 KB | Output is correct |
12 | Correct | 1 ms | 344 KB | Output is correct |
13 | Correct | 11 ms | 2652 KB | Output is correct |
14 | Correct | 0 ms | 344 KB | Output is correct |
15 | Correct | 24 ms | 5752 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 0 ms | 448 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 1 ms | 348 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 0 ms | 348 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
6 | Correct | 0 ms | 348 KB | Output is correct |
7 | Correct | 1 ms | 348 KB | Output is correct |
8 | Correct | 1 ms | 348 KB | Output is correct |
9 | Correct | 1 ms | 348 KB | Output is correct |
10 | Correct | 0 ms | 348 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 360 KB | Output is correct |
4 | Correct | 1 ms | 440 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
6 | Correct | 0 ms | 348 KB | Output is correct |
7 | Correct | 1 ms | 348 KB | Output is correct |
8 | Correct | 0 ms | 348 KB | Output is correct |
9 | Correct | 0 ms | 348 KB | Output is correct |
10 | Correct | 1 ms | 348 KB | Output is correct |
11 | Correct | 14 ms | 4816 KB | Output is correct |
12 | Correct | 17 ms | 5464 KB | Output is correct |
13 | Correct | 15 ms | 3168 KB | Output is correct |
14 | Correct | 15 ms | 4700 KB | Output is correct |
15 | Correct | 15 ms | 3084 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 344 KB | Output is correct |
4 | Correct | 1 ms | 348 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
6 | Correct | 0 ms | 344 KB | Output is correct |
7 | Correct | 0 ms | 348 KB | Output is correct |
8 | Correct | 1 ms | 348 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 0 ms | 348 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
6 | Correct | 1 ms | 348 KB | Output is correct |
7 | Correct | 0 ms | 348 KB | Output is correct |
8 | Correct | 0 ms | 436 KB | Output is correct |
9 | Correct | 27 ms | 5180 KB | Output is correct |
10 | Correct | 23 ms | 4312 KB | Output is correct |
11 | Correct | 8 ms | 1848 KB | Output is correct |
12 | Correct | 9 ms | 2140 KB | Output is correct |
13 | Correct | 3 ms | 604 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 344 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 1 ms | 348 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
6 | Correct | 0 ms | 348 KB | Output is correct |
7 | Correct | 0 ms | 348 KB | Output is correct |
8 | Correct | 0 ms | 348 KB | Output is correct |
9 | Correct | 27 ms | 5212 KB | Output is correct |
10 | Correct | 20 ms | 4312 KB | Output is correct |
11 | Correct | 8 ms | 1864 KB | Output is correct |
12 | Correct | 9 ms | 2136 KB | Output is correct |
13 | Correct | 3 ms | 604 KB | Output is correct |
14 | Execution timed out | 1097 ms | 5320 KB | Time limit exceeded |
15 | Halted | 0 ms | 0 KB | - |