제출 #1293588

#제출 시각아이디문제언어결과실행 시간메모리
1293588baotoan655Roller Coaster Railroad (IOI16_railroad)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> #define file(name) if (fopen(name".inp", "r")) { freopen(name".inp", "r", stdin); freopen(name".out", "w", stdout); } using namespace std; const int inf = 1e9; const int N = 4e5 + 5; int fa[N], sz[N]; int root(int u) { if(u == fa[u]) return u; return fa[u] = root(fa[u]); } bool join(int u, int v) { u = root(u), v = root(v); if(u == v) return false; if(sz[u] < sz[v]) swap(u, v); sz[u] += sz[v]; fa[v] = u; return true; } long long plan_roller_coaster(int n, int s[], int t[]) { ++n; s[n - 1] = inf; t[n - 1] = 1; vector<int> zip; long long ans = 0; for(int i = 0; i < n; ++i) { zip.emplace_back(s[i]); zip.emplace_back(t[i]); } sort(zip.begin(), zip.end()); zip.resize(unique(zip.begin(), zip.end()) - zip.begin()); int m = zip.size(); vector<int> ps(m); for(int i = 0; i < m; ++i) fa[i] = i, sz[i] = 1; for(int i = 0; i < n; ++i) { s[i] = lower_bound(zip.begin(), zip.end(), s[i]) - zip.begin(); t[i] = lower_bound(zip.begin(), zip.end(), t[i]) - zip.begin(); ps[s[i]]++; ps[t[i]]--; join(s[i], t[i]); } int pref = 0; vector<pair<int, int>> ve; for(int i = 0; i < m - 1; ++i) { pref += ps[i]; int d = zip[i + 1] - zip[i]; ans += max(0LL, (long long) pref * d); if(pref != 0) join(i, i + 1); else { ve.emplace_back(d, i); } } sort(ve.begin(), ve.end()); for(auto [w, u] : ve) { if(join(u, u + 1)) ans += w; } return ans; } //int main() { // ios_base::sync_with_stdio(false); // cin.tie(0), cout.tie(0); // // file("A") else file("task"); // int n; // cin >> n; // int s[n], t[n]; // for(int i = 0; i < n; ++i) cin >> s[i] >> t[i]; // cout << plan_roller_coaster(n, s, t) << '\n'; // return 0; //}

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

railroad.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
railroad_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
/usr/bin/ld: /tmp/cct65sV5.o: in function `main':
grader.cpp:(.text.startup+0x103): undefined reference to `plan_roller_coaster(std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status