Submission #128079

#TimeUsernameProblemLanguageResultExecution timeMemory
128079Nordway경주 (Race) (IOI11_race)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #define x first #define y second #define pb push_back #define mp make_pair #define up_b upper_bound #define low_b lower_bound #define sz(x) (int)x.size() #define all(v) v.begin(),v.end() #define boost ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0) using namespace std; typedef long long ll; typedef long double ld; typedef pair<int,int> pii; typedef pair<int,ll> pil; typedef pair<ll,int> pli; typedef pair<ll,ll> pll; const ll INF=1e18; const int inf = 2e9; const ld eps=1e-7; const ld pi = acos(-1); const int dx[4]={0,0 ,1,-1}; const int dy[4]={1,-1,0,0}; const int N=2e5+11; const int M=1e6+11; const int mod=1e9+7; int k,sz[N],h[N],ans[N]; ll d[N]; map<ll,int>mn; vector<pii>g[N]; void dfssz(int v,int p){ sz[v]=1; h[v]=h[p]+1; for(int i=0;i<sz(g[v]);i++){ int to=g[v][i].x; if(to!=p){ d[to]=d[v]+g[v][i].y; dfssz(to,v); } } } void add(int v,int p){ mn[d[v]]=min(mn[d[v]],h[v]); for(int i=0;i<sz(g[v]);i++){ int to=g[v][i].x; if(to==p)continue; add(to,v); } } void clr(int v,int p){ mn[d[v]]=inf; for(int i=0;i<sz(g[v]);i++){ int to=g[v][i].x; if(to==p)continue; clr(to,v); } } void upd(int u,int v){ ll val=k-d[u]+2*d[v]; ans[v]=min(ans[v],mn[val]+h[u]-2*h[v]); } void dfs_upd(int v,int p,int u){ upd(v,u); for(int i=0;i<sz(g[v]);i++){ int to=g[v][i].x; if(to==p)continue; dfs_upd(to,v,u); } } void dfs(int v,int pr,bool cl){ int p=-1; for(int i=0;i<sz(g[v]);i++){ int to=g[v][i].x; if(to==pr)continue; if(p==-1)p=to; if(sz[p]<sz[to])p=to; } ans[v]=inf; for(int i=0;i<sz(g[v]);i++){ int to=g[v][i].x; if(to==pr||to==p)continue; dfs(to,v,1); ans[v]=min(ans[v],ans[to]); } if(p!=-1){ dfs(p,v,0); ans[v]=min(ans[v],ans[p]); } for(int i=0;i<sz(g[v]);i++){ int to=g[v][i].x; if(to==pr||to==p)continue; dfs_upd(to,v,v); add(to,v); } upd(v,v); mn[d[v]]=min(mn[d[v]],h[v]); if(cl){ clr(v,pr); } } int best_path(int n,int K,int H[][],int l[]){ k=K; for(int i=0;i<n-1;i++){ int u=H[i][0],v=H[i][1],w=l[i]; g[u].pb(mp(v,w)); g[v].pb(mp(u,w)); } dfssz(0,0); for(int i=0;i<n;i++){ mn[d[i]]=inf; } dfs(0,0,0); return mn[0]; }

Compilation message (stderr)

race.cpp:113:35: error: declaration of 'H' as multidimensional array must have bounds for all dimensions except the first
 int best_path(int n,int K,int H[][],int l[]){
                                   ^
race.cpp:113:36: error: expected ')' before ',' token
 int best_path(int n,int K,int H[][],int l[]){
                                    ^
race.cpp:113:37: error: expected unqualified-id before 'int'
 int best_path(int n,int K,int H[][],int l[]){
                                     ^~~