제출 #1297396

#제출 시각아이디문제언어결과실행 시간메모리
1297396baotoan655Race (IOI11_race)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; int best_path(int n, int k, int h[][2], int l[]) { vector<vector<pair<int, int>>> g(n); for(int i = 0; i < n - 1; ++i) { int u = h[i][0], v = h[i][1]; g[u].emplace_back(v, l[i]); g[v].emplace_back(u, l[i]); } int ans = n; vector<bool> del(n, false); vector<int> sz(n, 0); function<void(int, int)> get_sz = [&](int u, int p) -> void { sz[u] = 1; for(pair<int, int> e : g[u]) { int v = e.first; if(v == p || del[v]) continue; get_sz(v, u); sz[u] += sz[v]; } }; function<int(int, int, int)> get_cen = [&](int u, int p, int tot) -> int { for(pair<int, int> e : g[u]) { int v = e.first; if(v == p || del[v]) continue; if(sz[v] > tot / 2) return get_cen(v, u, tot); } return u; }; map<long long, int> mp; function<void(int, int, int, long long, bool)> dfs = [&](int u, int p, int depth, long long dist, bool sus) { if(!sus) { if(mp.count(k - dist)) ans = min(ans, depth + mp[k - dist]); } else { if(mp.count(dist)) mp[dist] = min(mp[dist], depth); else mp[dist] = depth; } for(pair<int, int> e : g[u]) { int v = e.first, w = e.second; if(v == p || del[v]) continue; dfs(v, u, depth + 1, dist + w, sus); } }; function<void(int)> centroid = [&](int u) -> void { get_sz(u, -1); int cen = get_cen(u, -1, sz[u]); del[cen] = true; mp.clear(); mp[0] = 0; for(pair<int, int> e : g[cen]) { int v = e.first, w = e.second; if(del[v]) continue; dfs(v, cen, 1, w, false); dfs(v, cen, 1, w, true); } for(pair<int, int> e : g[cen]) { int v = e.first; if(del[v]) continue; centroid(v); } }; centroid(1); if(ans >= n) ans = -1; return ans; } int main() { ios_base::sync_with_stdio(false); cin.tie(0), cout.tie(0); file("A") else file("task"); int n, k; cin >> n >> k; int h[n - 1][2], l[n - 1]; for(int i = 0; i < n; ++i) { int u, v, c; cin >> u >> v >> c; h[i][0] = u; h[i][1] = v; l[i] = c; } cout << best_path(n, k, h, l) << '\n'; return 0; }

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

race.cpp: In function 'int main()':
race.cpp:2:58: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
    2 | #define file(name)  if (fopen(name".inp", "r")) { freopen(name".inp", "r", stdin); freopen(name".out", "w", stdout); }
      |                                                   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
race.cpp:73:5: note: in expansion of macro 'file'
   73 |     file("A") else file("task");
      |     ^~~~
race.cpp:2:91: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
    2 | #define file(name)  if (fopen(name".inp", "r")) { freopen(name".inp", "r", stdin); freopen(name".out", "w", stdout); }
      |                                                                                    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
race.cpp:73:5: note: in expansion of macro 'file'
   73 |     file("A") else file("task");
      |     ^~~~
race.cpp:2:58: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
    2 | #define file(name)  if (fopen(name".inp", "r")) { freopen(name".inp", "r", stdin); freopen(name".out", "w", stdout); }
      |                                                   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
race.cpp:73:20: note: in expansion of macro 'file'
   73 |     file("A") else file("task");
      |                    ^~~~
race.cpp:2:91: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
    2 | #define file(name)  if (fopen(name".inp", "r")) { freopen(name".inp", "r", stdin); freopen(name".out", "w", stdout); }
      |                                                                                    ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
race.cpp:73:20: note: in expansion of macro 'file'
   73 |     file("A") else file("task");
      |                    ^~~~
/usr/bin/ld: /tmp/ccUcmZUH.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccXOKDl1.o:race.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status