Submission #1111085

#TimeUsernameProblemLanguageResultExecution timeMemory
1111085PhcKhnhTapCodeRace (IOI11_race)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> /**----------------------------------------- ------Author: PhcKhnhTapCode --------------- ------From: CHV with luv <3 ---------------- ------Source:_________________-------------- ---------//--------YAT---------//----------- -----------------------------------------**/ using namespace std; #define YAT "test" #define db long double #define ll long long #define ull unsigned long long #define fi first #define se second #define pub push_back #define ii pair<int, int> #define vi vector<int> #define vvi vector<vi> #define vvvi vector<vvi> #define vii vector<ii> #define all(v) v.begin(),v.end() #define RESET(f, v) memset(f, v, sizeof f) #define FOR(i, a, b) for (int i = (a), _b = (b); i <= _b; ++i) #define FORD(i, b, a) for (int i = (b), _a = (a); i >= _a; --i) #define FORV(v, H) for (auto &v: H) #define BIT(n, i) ((n >> i) & 1LL) #define ONBIT(n, i) (n (1 << (i))) #define OFBIT(n, i) (n ^ (1 << (i))) #define CNTBIT(n) __builtin_popcountll(n) #define LOGG(n) (63 - __builtin_clzll(n)) #define MASK(i) (1LL << (i)) #define left(id) (id << 1LL) #define right(id) ((id << 1LL) | (1LL)) #define mid(l, r) ((l + r ) >> 1ll) template <class X, class Y> bool maximize(X &A, const Y &B){ if(A < B) return A = B, true; return false; } template <class X, class Y> bool minimize(X &A, const Y &B){ if(A > B) return A = B, true; return false; } const long long oo = 1e18; const int INF = 1e9 + 1e8 + 1e7; const int BLOCK = 320; const int BASE = 311; const int MOD = 1e9 + 7; const int MAXN = 1e6 + 100; const int MAXVAL = 1e6 + 100; int n, k; vii G[MAXN]; bool del[MAXN]; int sz[MAXN], par[MAXN]; void dfs(int u, int pre){ sz[u] = 1; FORV(v, G[u]){ if(v.fi == pre || del[v.fi]) continue; dfs(v.fi, u); sz[u] += sz[v.fi]; } } int findc(int u, int pre, int s){ FORV(v, G[u]){ if(v.fi == pre || del[v.fi]) continue; if(sz[v.fi] > s / 2) return findc(v.fi, u, s); } return u; } ll ans = oo; ll F[MAXN]; struct DATA{ int u, depth, dist; }; vector <DATA> H; void solve(int u, int pre, int d, int dist){ if(dist > k) return ; minimize(ans, F[k - dist] + d); H.pub({u, d, dist}); FORV(v, G[u]){ if(v.fi == pre || del[v.fi]) continue; solve(v.fi, u, d + 1, dist + v.se); } } void build(int u){ dfs(u, u); int c = findc(u, u, sz[u]); del[c] = 1; set <int> sav; FORV(tmp, G[c]){ int v = tmp.fi; if(del[v]) continue; solve(v, c, 1, tmp.se); F[0] = 0; FORV(x, H) { if(x.dist <= k) minimize(F[x.dist], x.depth); sav.insert(x.dist); } H.clear(); } FORV(val, sav) F[val] = oo; FORV(v, G[c]){ if(del[v.fi]) continue; build(v.fi); } } main() { ios_base::sync_with_stdio(0); cin.tie(0);cout.tie(0); if(fopen(YAT ".inp", "r")) { freopen(YAT ".inp","r",stdin); freopen(YAT ".ans","w",stdout); } cin >> n >> k; FOR(i, 1, n - 1){ int u, v, w; cin >> u >> v >> w; G[u].pub({v, w}); G[v].pub({u, w}); } FOR(u, 0, k) F[u] = oo; build(0); if(ans >= oo / 2) ans = -1; cout << ans ; cerr << "PhcKhnhTapCode's TimeRun: " << (1.0 * clock() / CLOCKS_PER_SEC) << " s. \n"; return (0 ^ 0); }

Compilation message (stderr)

race.cpp:125:2: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
  125 |  main()
      |  ^~~~
race.cpp: In function 'int main()':
race.cpp:130:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  130 |         freopen(YAT ".inp","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
race.cpp:131:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  131 |         freopen(YAT ".ans","w",stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/ld: /tmp/ccjNpsnJ.o: in function `main':
race.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/cc7G7k9I.o:grader.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/cc7G7k9I.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