Submission #1303893

#TimeUsernameProblemLanguageResultExecution timeMemory
1303893mdobricRace (IOI11_race)C++20
21 / 100
3093 ms9996 KiB
#include "race.h" #include <bits/stdc++.h> using namespace std; const int maxn = 200005; vector <pair <int, long long> > v[maxn]; long long dist[maxn]; int koraci[maxn]; int ans = 1e9; void dfs2 (int x, int p){ for (int i = 0; i < v[x].size(); i++){ int y = v[x][i].first; int d = v[x][i].second; if (y != p){ dist[y] = dist[x] + d; koraci[y] = koraci[x] + 1; dfs2(y, x); } } } int best_path (int n, int k, int h[maxn][2], int l[maxn]){ for (int i = 0; i < n - 1; i++){ v[h[i][0]].push_back({h[i][1], l[i]}); v[h[i][1]].push_back({h[i][0], l[i]}); } for (int i = 0; i < n; i++){ dist[i] = 0, koraci[i] = 0; dfs2(i, i); for (int j = 0; j < n; j++){ if (dist[j] == k) ans = min(ans, koraci[j]); } } if (ans == 1e9) return -1; else return ans; } /* int main (void){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, k, h[maxn][2], l[maxn]; cin >> n >> k; for (int i = 0; i < n - 1; i++) cin >> h[i][0] >> h[i][1] >> l[i]; cout << best_path(n, k, h, l) << endl; return 0; }*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...