제출 #1270062

#제출 시각아이디문제언어결과실행 시간메모리
1270062bnd2100경주 (Race) (IOI11_race)C++20
컴파일 에러
0 ms0 KiB
/* * @Author: Twynzz * @Last Modified by: Twynzz * @Note For This Problem: https://wbd.ms/share/v2/aHR0cHM6Ly93aGl0ZWJvYXJkLm1pY3Jvc29mdC5jb20vYXBpL3YxLjAvd2hpdGVib2FyZHMvcmVkZWVtLzM3MDM5NDkwNGRkNDQ1NTc5Y2Y3NWFhNjI3ZmMxOGIyX0JCQTcxNzYyLTEyRTAtNDJFMS1CMzI0LTVCMTMxRjQyNEUzRF9iZmM4ZDc5MC05ZTEwLTQ4MGEtYjliYy04OGRhZDVhNTJlZWQ= */ #include <bits/stdc++.h> using namespace std; // ------------ Define ------------ #define el "\n" #define int long long #define ld long double #define str string #define file(name) {freopen(name".inp","r",stdin);freopen(name".out","w",stdout);} #define IOS {std::ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);} #define _TBN_ signed main() #define setp(n) setprecision(n)<< fixed #define fi first #define se second #define ii pair<int,int> #define gcd(a,b) __gcd(a,b) #define iii tuple<int, int, int> #define pb push_back #define pf push_front #define eb emplace_back #define sz(v) (int)v.size() const int maxn = 1e6+9; const long long oo = 1e18; const int MOD = 1e9+7, Mod = 1e9+9; const int base = 311, base2 = 293; template<class X> bool maximize(X &a, const X &b) { if (a<b) { a = b; return 1; } return 0; } template<class X> bool minimize(X &a, const X &b) { if (a>b) { a = b; return 1; } return 0; } namespace sub1 { bool checkSub1(); void sub1(); } namespace sub2 { bool checkSub2(); void sub2(); } namespace sub3 { bool checkSub3(); void sub3(); } int lcm(int a, int b) { return a/gcd(a,b)*b; } int sqr(int x) {return x*x;} inline bool MASK(int mask, int bit) {return ((mask>>bit)&1);} inline long long F(int n) {return n*(n+1)/2;} inline void add(int &a, int b, int m = MOD) { (a += b) %= m; if (a >= m) a -= m; } inline void sub(int &a, int b, int m = MOD) { (a -= b) %= m; if (a < 0) a += m; } inline void mul(int &a, int b, int m = MOD) { a %= m, b %= m; (a *= b) %= m; } int dx[] = {-1, 1, 0, 0}; int dy[] = {0, 0, -1, 1}; // ------------ Code ------------ int n, k, h[maxn], len[maxn]; vector<ii> adj[maxn]; int heavy[maxn], in[maxn], out[maxn], timer, id[maxn]; int dfs(int u, int par) { in[u] = ++timer; id[timer] = u; int mx = 0, cursz = 1; for(ii cur : adj[u]) { int v = cur.fi, l = cur.se; if (v == par) continue; h[v] = h[u] + 1; len[v] = len[u] + l; int sz = dfs(v, u); cursz += sz; if (maximize(mx, sz)) heavy[u] = v; } out[u] = timer; return cursz; } int d[maxn * 3]; void them(int u) { minimize(d[len[u]], h[u]); } int ans, mx; void Sack(int u, int par, bool keep) { for(ii cur : adj[u]) { int v = cur.fi; if (v == par || v == heavy[u]) continue; Sack(v, u, 0); } if (heavy[u]) Sack(heavy[u], u, 1); for(ii cur : adj[u]) { int v = cur.fi; if (v == par || v == heavy[u]) continue; for(int i = in[v]; i <= out[v]; i++) { int rem = k - (len[id[i]] - len[u]); if (rem < 0) continue; int cur_need = len[u] + rem; if (cur_need > mx) continue; minimize(ans, d[cur_need] + h[id[i]] - 2 * h[u]); } for(int i = in[v]; i <= out[v]; i++) them(id[i]); } them(u); if (len[u] + k <= mx) minimize(ans, d[len[u] + k] - h[u]); // cout<< u<< ' '<< len[u] + k<< ' '<< h[len[u] + k]<< el; if (!keep) { for(int i = in[u]; i <= out[u]; i++) d[len[id[i]]] = oo; } } _TBN_ { IOS; if (fopen("WSHIPPER.inp","r")) file("WSHIPPER"); cin >>n >>k; for(int i = 1; i < n; i++) { int u, v, l; cin >>u >>v >>l; u++, v++; adj[u].eb(v, l); adj[v].eb(u, l); } for(int i = 1; i <= 1; i++) { if (sub1::checkSub1()) {sub1::sub1(); continue;} // if (sub2::checkSub2()) {sub2::sub2(); continue;} // if (sub3::checkSub3()) {sub3::sub3(); continue;} } return 0; } namespace sub1 { bool checkSub1() { return 1; } void sub1() { dfs(1, -1); ans = oo; mx = *max_element(len + 1, len + 1 + n); for(int i = 0; i <= mx; i++) d[i] = oo; Sack(1, -1, 0); if (ans > (int)1e9) ans = -1; cout<< ans<< el; } }

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

race.cpp: In function 'int main()':
race.cpp:17:28: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 | #define file(name) {freopen(name".inp","r",stdin);freopen(name".out","w",stdout);}
      |                     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
race.cpp:168:36: note: in expansion of macro 'file'
  168 |     if (fopen("WSHIPPER.inp","r")) file("WSHIPPER");
      |                                    ^~~~
race.cpp:17:58: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 | #define file(name) {freopen(name".inp","r",stdin);freopen(name".out","w",stdout);}
      |                                                   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
race.cpp:168:36: note: in expansion of macro 'file'
  168 |     if (fopen("WSHIPPER.inp","r")) file("WSHIPPER");
      |                                    ^~~~
/usr/bin/ld: /tmp/ccJfXFfI.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/cc5y7DtM.o:race.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccJfXFfI.o: in function `main':
grader.cpp:(.text.startup+0x28): undefined reference to `best_path(int, int, int (*) [2], int*)'
collect2: error: ld returned 1 exit status