# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1007511 | 2024-06-25T05:12:12 Z | Gilgamesh | 곤돌라 (IOI14_gondola) | C++17 | 46 ms | 5972 KB |
#include "bits/stdc++.h" #include "gondola.h" #define MOD 1000000009 using namespace std; int valid(int n, int inputSeq[]) { map<int, bool> seen; bool found = false; int diff = -1; for (int i = 0; i < n; i++) { if (seen[inputSeq[i]]) return 0; seen[inputSeq[i]] = true; if (inputSeq[i] > n) continue; if (!found) { found = true; diff = (inputSeq[i] - i + n) % n; } else { if ((inputSeq[i] - i + n) % n != diff) return 0; } } return 1; } int replacement(int n, int gondolaSeq[], int replacementSeq[]) { int diff = 0; for (int i = 0; i < n; i++) { if (gondolaSeq[i] <= n) { diff = (gondolaSeq[i] - i + n) % n; break; } } vector<pair<int, int>> v; for (int i = 0; i < n; i++) { if (gondolaSeq[i] > n) { int x = (i+diff) % n; if (x == 0) x = n; v.push_back({gondolaSeq[i], x}); } } sort(v.begin(), v.end()); int last = n; //last assigned gondola # vector<int> rep; for (int i = 0; i < v.size(); i++) { rep.push_back(v[i].second); //v[i].second replaced with last+1 for (int j = last+1; j < v[i].first; j++) rep.push_back(j); //j replaced with j+1 last = v[i].first; } for (int i = 0; i < rep.size(); i++) replacementSeq[i] = rep[i]; return rep.size(); } //---------------------- long long modpow(long long b, long long e) { if (e == 0) return 1; if (e % 2 == 1) return (b * modpow(b, e-1)) % MOD; long long r = modpow(b, e/2); return (r * r) % MOD; } int countReplacement(int n, int inputSeq[]) { if (valid(n, inputSeq) == 0) return 0; bool fixed = false; for (int i = 0; i < n; i++) { if (inputSeq[i] <= n) { fixed = true; break; } } long long ans = 1; vector<long long> v; for (int i = 0; i < n; i++) { if (inputSeq[i] > n) v.push_back(inputSeq[i]); } sort(v.begin(), v.end()); long long last = n; for (int i = 0; i < v.size(); i++) { ans = (ans * modpow(v.size()-i, v[i] - last - 1)) % MOD; last = v[i]; } if (!fixed) return (n * ans) % MOD; return ans; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | 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 |
# | 결과 | 실행 시간 | 메모리 | 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 |
6 | Correct | 9 ms | 2140 KB | Output is correct |
7 | Correct | 5 ms | 604 KB | Output is correct |
8 | Correct | 17 ms | 3932 KB | Output is correct |
9 | Correct | 5 ms | 1372 KB | Output is correct |
10 | Correct | 22 ms | 4544 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 |
6 | Correct | 9 ms | 2252 KB | Output is correct |
7 | Correct | 6 ms | 600 KB | Output is correct |
8 | Correct | 18 ms | 3932 KB | Output is correct |
9 | Correct | 5 ms | 1372 KB | Output is correct |
10 | Correct | 22 ms | 4444 KB | Output is correct |
11 | Correct | 0 ms | 348 KB | Output is correct |
12 | Correct | 0 ms | 348 KB | Output is correct |
13 | Correct | 2 ms | 344 KB | Output is correct |
14 | Correct | 0 ms | 348 KB | Output is correct |
15 | Correct | 5 ms | 632 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 600 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 | 348 KB | Output is correct |
6 | Correct | 0 ms | 348 KB | Output is correct |
7 | Correct | 1 ms | 440 KB | Output is correct |
8 | Correct | 0 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 | 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 |
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 | 0 ms | 348 KB | Output is correct |
11 | Correct | 5 ms | 604 KB | Output is correct |
12 | Correct | 5 ms | 604 KB | Output is correct |
13 | Correct | 9 ms | 1372 KB | Output is correct |
14 | Correct | 5 ms | 604 KB | Output is correct |
15 | Correct | 13 ms | 2356 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 | 0 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 | 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 | 344 KB | Output is correct |
8 | Correct | 0 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 | 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 | 31 ms | 3932 KB | Output is correct |
10 | Correct | 24 ms | 3428 KB | Output is correct |
11 | Correct | 9 ms | 1372 KB | Output is correct |
12 | Correct | 11 ms | 1628 KB | Output is correct |
13 | Correct | 2 ms | 604 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 |
6 | Correct | 0 ms | 412 KB | Output is correct |
7 | Correct | 1 ms | 348 KB | Output is correct |
8 | Correct | 0 ms | 348 KB | Output is correct |
9 | Correct | 29 ms | 4000 KB | Output is correct |
10 | Correct | 23 ms | 3420 KB | Output is correct |
11 | Correct | 8 ms | 1572 KB | Output is correct |
12 | Correct | 10 ms | 1832 KB | Output is correct |
13 | Correct | 3 ms | 600 KB | Output is correct |
14 | Correct | 36 ms | 4696 KB | Output is correct |
15 | Correct | 46 ms | 5972 KB | Output is correct |
16 | Correct | 7 ms | 1336 KB | Output is correct |
17 | Correct | 29 ms | 4204 KB | Output is correct |
18 | Correct | 16 ms | 2720 KB | Output is correct |