Submission #821825

#TimeUsernameProblemLanguageResultExecution timeMemory
821825nemethmRace (IOI11_race)C++17
21 / 100
3047 ms11784 KiB
#include "race.h" #include <bits/stdc++.h> using namespace std; using ll = long long int; vector<pair<int,ll>> g[100100]; ll level[100100], dist[100100]; ll k, ans = -1; void dfs(int node, int prev = -1){ if(dist[node] == k){ ans = ans == -1 ? level[node] : min(ans, level[node]); } for(auto i : g[node]){ if(i.first != prev){ level[i.first] = level[node] + 1; dist[i.first] = dist[node] + i.second; dfs(i.first, node); } } } int best_path(int N, int K, int H[][2], int L[]) { k = K; for(int i = 0; i < N - 1; ++i){ g[H[i][0]].push_back({H[i][1], L[i]}); g[H[i][1]].push_back({H[i][0], L[i]}); } for(int i = 0; i < N; ++i){ fill(level, level + N, 0); fill(dist, dist + N, 0); dfs(i); } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...