# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1034734 | 2024-07-25T17:21:11 Z | ArthuroWich | 곤돌라 (IOI14_gondola) | C++17 | 29 ms | 5956 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; int ma = 0, mod = 1000000009; long long int ans = 1; for (int i = 0; i < n; i++) { if (gondolaSeq[i] > n) { num.push_back(gondolaSeq[i]); } } if (num.size() == 0) { return ans; } sort(num.rbegin(), num.rend()); int l = n+1; while(num.size() > 1) { if (num.back() == l) { num.pop_back(); l++; } else { ans *= 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 | 344 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 | 344 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 0 ms | 348 KB | Output is correct |
5 | Correct | 1 ms | 348 KB | Output is correct |
6 | Correct | 8 ms | 2908 KB | Output is correct |
7 | Correct | 20 ms | 4160 KB | Output is correct |
8 | Correct | 14 ms | 5080 KB | Output is correct |
9 | Correct | 5 ms | 1884 KB | Output is correct |
10 | Correct | 18 ms | 5848 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 | 10 ms | 2808 KB | Output is correct |
7 | Correct | 21 ms | 4068 KB | Output is correct |
8 | Correct | 14 ms | 5080 KB | Output is correct |
9 | Correct | 5 ms | 1880 KB | Output is correct |
10 | Correct | 21 ms | 5664 KB | Output is correct |
11 | Correct | 0 ms | 348 KB | Output is correct |
12 | Correct | 0 ms | 348 KB | Output is correct |
13 | Correct | 10 ms | 2840 KB | Output is correct |
14 | Correct | 0 ms | 348 KB | Output is correct |
15 | Correct | 24 ms | 5956 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 | 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 | 344 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 | 448 KB | Output is correct |
7 | Correct | 1 ms | 348 KB | Output is correct |
8 | Correct | 1 ms | 348 KB | Output is correct |
9 | Correct | 0 ms | 348 KB | Output is correct |
10 | Correct | 1 ms | 344 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 | 344 KB | Output is correct |
6 | Correct | 0 ms | 348 KB | Output is correct |
7 | Correct | 0 ms | 348 KB | Output is correct |
8 | Correct | 1 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 | 15 ms | 4700 KB | Output is correct |
12 | Correct | 17 ms | 5488 KB | Output is correct |
13 | Correct | 15 ms | 3164 KB | Output is correct |
14 | Correct | 15 ms | 4700 KB | Output is correct |
15 | Correct | 15 ms | 3060 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 1 ms | 344 KB | Output is correct |
3 | 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 | 448 KB | Output is correct |
7 | Correct | 0 ms | 348 KB | Output is correct |
8 | Correct | 0 ms | 348 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 444 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 | 0 ms | 348 KB | Output is correct |
8 | Correct | 0 ms | 348 KB | Output is correct |
9 | Correct | 29 ms | 5292 KB | Output is correct |
10 | Correct | 27 ms | 4336 KB | Output is correct |
11 | Correct | 8 ms | 1880 KB | Output is correct |
12 | Correct | 9 ms | 2140 KB | Output is correct |
13 | Incorrect | 3 ms | 752 KB | Output isn't correct |
14 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 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 |
6 | Correct | 0 ms | 444 KB | Output is correct |
7 | Correct | 0 ms | 348 KB | Output is correct |
8 | Correct | 0 ms | 352 KB | Output is correct |
9 | Correct | 27 ms | 5080 KB | Output is correct |
10 | Correct | 21 ms | 4188 KB | Output is correct |
11 | Correct | 8 ms | 1860 KB | Output is correct |
12 | Correct | 9 ms | 2240 KB | Output is correct |
13 | Incorrect | 3 ms | 604 KB | Output isn't correct |
14 | Halted | 0 ms | 0 KB | - |