제출 #1149147

#제출 시각아이디문제언어결과실행 시간메모리
1149147BlockOG곤돌라 (IOI14_gondola)C++20
컴파일 에러
0 ms0 KiB
#include <queue> #include <utility> // meeeow mrrowww :3 // go play vivid/stasis! it's a very awesome free game on steam using namespace std; int valid(int n, int inputSeq[]) { int offset_got = false, offset; for (int i = 0; i < n; i++) { if (inputSeq[i] <= n) { if (offset_got) { if ((inputSeq[i] + offset + n) % n != i) return false; } else { offset_got = true; offset = i - inputSeq[i]; } } } return true; } int replacement(int n, int gondolaSeq[], int replacementSeq[]) { int fixedSeq[n]; int offset_got = false, offset; for (int i = 0; i < n; i++) { if (offset_got) { fixedSeq[i] = (i - offset - 1 + n) % n + 1; } else if (gondolaSeq[i] <= n) { offset_got = true; offset = i - gondolaSeq[i]; for (int j = 0; j <= i; j++) fixedSeq[j] = (j - offset - 1 + n) % n + 1; } } priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> q; for (int i = 0; i < n; i++) { if (gondolaSeq[i] > n) q.emplace(gondolaSeq[i] - n, fixedSeq[i]); } int l = 0; while (q.size()) { auto [m, r] = q.top(); q.pop(); for (int i = 0; i < m; i++) { replacementSeq[l++] = r; r = n + l; } } return l; } long long pow(long long a, long long b) { long long res = 1; while (b) { if (b & 1) { res = (res * a) % 1000000009; } a = (a * a) % 1000000009; b >>= 1; } return res; } int countReplacement(int n, int inputSeq[]) { int offset_got = false, offset; priority_queue<int, vector<int>, greater<int>> q; for (int i = 0; i < n; i++) { if (inputSeq[i] <= n) { if (offset_got) { if ((inputSeq[i] + offset + n) % n != i) return 0; } else { offset_got = true; offset = i - inputSeq[i]; } } else { q.push(inputSeq[i]); } } long long res = 1; int p = n; while (q.size()) { int v = q.top(); res *= pow(q.size(), v - p - 1); p = v; q.pop(); } if (!offset_got) res = (res * n) % 1000000009; return res; }

컴파일 시 표준 에러 (stderr) 메시지

/usr/bin/ld: /tmp/ccu6Eqol.o: in function `main':
grader.cpp:(.text.startup+0xae): undefined reference to `valid'
/usr/bin/ld: grader.cpp:(.text.startup+0x108): undefined reference to `countReplacement'
/usr/bin/ld: grader.cpp:(.text.startup+0x135): undefined reference to `replacement'
collect2: error: ld returned 1 exit status