Submission #399072

#TimeUsernameProblemLanguageResultExecution timeMemory
399072PetremolRace (IOI11_race)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #define int long long int #define all(x) x.begin(), x.end() #define send ios_base::sync_with_stdio(false); #define help cin.tie(NULL) #define inf (int)(1e17+1) #define mod (int)(1e9+7) #define N (int)(2e5+5) #define fi first #define se second #define endl "\n" #define double long double #define eps (double)(1e-9) #define sa cout<<"sa"<<endl using namespace std; int n,k; vector <pair<int,int>> adj[N]; vector <int> sz(N); vector <bool> mrk(N); int sdfs(int c,int pre=0){ sz[c]=1; for(auto x:adj[c]){ if(x.fi==pre||mrk[x.fi]) continue; sz[c]+=sdfs(x.fi,c); } return sz[c]; } int get(int c,int pre,int s){ for(auto x:adj[c]){ if(x.fi==pre||mrk[x.fi]) continue; if(2*sz[x.fi]>s) return get(x.fi,c,s); } return c; } map <int,int> cmp; void dfs(int c,int pre,int d,int cur){ if(cur>k) return; for(auto x:adj[c]){ if(x.fi==pre||mrk[x.fi]) continue; dfs(x.fi,c,d+1,cur+x.se); } cmp[cur]=d; } int ans=inf; void centroid(int c){ c=get(c,0,sdfs(c)); mrk[c]=1; map<int,int> mp; mp[0]=0; for(auto x:adj[c]) if(!mrk[x.fi]){ dfs(x.fi,c,1,x.se); if(mp.size()<cmp.size()) swap(mp,cmp); for(auto e:cmp) if(mp.count(k-e.fi)) ans=min(ans,e.se+mp[k-e.fi]); for(auto e:cmp){ if(mp.count(e.fi)) mp[e.fi]=min(mp[e.fi],e.se); else mp[e.fi]=e.se; } cmp.clear(); } for(auto x:adj[c]) if(!mrk[x.fi]) centroid(x.fi); } int best_path(int N, int K, int H[][2], int L[]){ n=N;k=K; for(int i=0;i<n-1;i++){ int u=H[i][0],v=H[i][1],w=L[i]; ++u;++v; adj[u].push_back({v,w}); adj[v].push_back({u,w}); } centroid(1); return((ans!=inf)?ans:-1); }

Compilation message (stderr)

race.cpp:2:13: error: expected primary-expression before 'long'
    2 | #define int long long int
      |             ^~~~
race.cpp:73:15: note: in expansion of macro 'int'
   73 | int best_path(int N, int K, int H[][2], int L[]){
      |               ^~~
race.cpp:2:13: error: expected primary-expression before 'long'
    2 | #define int long long int
      |             ^~~~
race.cpp:73:22: note: in expansion of macro 'int'
   73 | int best_path(int N, int K, int H[][2], int L[]){
      |                      ^~~
race.cpp:2:13: error: expected primary-expression before 'long'
    2 | #define int long long int
      |             ^~~~
race.cpp:73:29: note: in expansion of macro 'int'
   73 | int best_path(int N, int K, int H[][2], int L[]){
      |                             ^~~
race.cpp:2:13: error: expected primary-expression before 'long'
    2 | #define int long long int
      |             ^~~~
race.cpp:73:41: note: in expansion of macro 'int'
   73 | int best_path(int N, int K, int H[][2], int L[]){
      |                                         ^~~
race.cpp:73:48: error: expression list treated as compound expression in initializer [-fpermissive]
   73 | int best_path(int N, int K, int H[][2], int L[]){
      |                                                ^