Submission #492951

#TimeUsernameProblemLanguageResultExecution timeMemory
4929511neRace (IOI11_race)C++14
Compilation error
0 ms0 KiB
#include "race.h" #include<bits/stdc++.h> using namespace std; vector<set<pair<int64_t,int64_t>>>adj(1e6); int64_t k=0; vector<int64_t>sub(1e6,0); vector<int64_t>ans(1e6,0); vector<int64_t>aux(1e6,0); int64_t answer = int64_t_MAX; int64_t kk = -1; int64_t bookmark = 0; void dfs (int64_t cur,int64_t par,int64_t cost,int64_t len,int64_t fill){ if (fill){ if (aux[cost]<bookmark){ aux[cost] = bookmark; ans[cost] = len; } else if (len<ans[cost]){ ans[cost] = len; aux[cost] = bookmark; } } else{ if (aux[kk - cost]==bookmark){ if (len + ans[kk - cost]<answer){ answer = min(answer,len + ans[kk-cost]); } if (cost ==kk){ answer = min(answer,len); } } } for (auto x:adj[cur]){ if (x.first!=par){ dfs(x.first,cur,cost + x.second,len + 1,fill); } } } void getsub(int64_t u,int64_t par){ sub[u]=1; k++; for (auto x:adj[u]){ if (x.first!=par){ getsub(x.first,u); sub[u]+=sub[x.first]; } } } int64_t getcentroid(int64_t u,int64_t par){ for (auto x:adj[u]){ if (x.first!=par){ if (sub[x.first]>k/2){ return getcentroid(x.first,u); } } } return u; } void decomposition(int64_t u,int64_t par){ k = 0; getsub(u,u); int64_t c = getcentroid(u,u); if (par==-1){ par=c; } bookmark++; for (auto x:adj[c]){ dfs(x.first,c,x.second,1,0); dfs(x.first,c,x.second,1,1); } for (auto x:adj[c]){ adj[x.first].erase({c,x.second}); //adj[c].erase(x); decomposition(x.first,c); } } void build(){ decomposition(0,-1); } int64_t best_path(int64_t N, int64_t K, int64_t H[][2], int64_t L[]) { kk = K; for (int64_t i = 0;i<N-1;++i){ adj[H[i][0]].insert({H[i][1],L[i]}); adj[H[i][1]].insert({H[i][0],L[i]}); } build(); if (answer==int64_t_MAX){ return -1; } return answer; }

Compilation message (stderr)

race.cpp:11:18: error: 'int64_t_MAX' was not declared in this scope; did you mean 'int64_t'?
   11 | int64_t answer = int64_t_MAX;
      |                  ^~~~~~~~~~~
      |                  int64_t
race.cpp: In function 'int64_t best_path(int64_t, int64_t, int64_t (*)[2], int64_t*)':
race.cpp:90:15: error: 'int64_t_MAX' was not declared in this scope; did you mean 'int64_t'?
   90 |   if (answer==int64_t_MAX){
      |               ^~~~~~~~~~~
      |               int64_t