제출 #1170615

#제출 시각아이디문제언어결과실행 시간메모리
1170615anmattroiClosing Time (IOI23_closing)C++17
컴파일 에러
0 ms0 KiB
#include "closing.h" #include <bits/stdc++.h> #define maxn 200005 using namespace std; int n, x, y; int64_t s[maxn], k; int64_t distance(int a, int b) { if (a > b) swap(a, b); return s[b] - s[a]; } int sub0() { vector<int64_t> nho; for (int i = 0; i < n; i++) nho.emplace_back(min(distance(x, i), distance(y, i))); sort(nho.begin(), nho.end()); int64_t ans = 0; for (int i = 0; i < n; i++) { ans += nho[i]; if (ans > k) return i; } return n; } int sub1() { int64_t ans = 0; for (int i = x; i <= y; i++) ans += min(distance(i, x), distance(y, i)); if (ans > k) return 0; int best = y-x+1; vector<int64_t> nho, outliers; for (int i = 0; i < n; i++) nho.emplace_back(max(distance(i, x), distance(y, i))); for (int i = 0; i < x; i++) outliers.emplace_back(distance(i, x)); for (int i = y+1; i < n; i++) outliers.emplace_back(distance(i, y)); sort(outliers.begin(), outliers.end()); sort(nho.begin(), nho.end()); for (int i = 0; i < n; i++) { ans += nho[i]; if (ans > k) return best; int p = outliers.size(); int64_t sum = ans; for (int j = 0; j < outliers.size(); j++) { sum += outliers[j]; if (sum > k) { p = j; break; } } if (p + y-x+1 >= i + 1) best = max(best, p + i + 1 + y-x+1); } return best; } int max_score(int N, int X, int Y, int64_t K, vector<int> U, vector<int> V, vector<int> W) { n = N; x = X; y = Y; k = K; for (int i = 1; i < N; i++) s[i] = s[i-1] + W[i-1]; return max(sub0(), sub1()); }

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

/usr/bin/ld: /tmp/ccmWSJjw.o: in function `main':
grader.cpp:(.text.startup+0x75d): undefined reference to `max_score(int, int, int, long long, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status