Submission #1196608

#TimeUsernameProblemLanguageResultExecution timeMemory
1196608sunboiCrocodile's Underground City (IOI11_crocodile)C++20
46 / 100
168 ms327680 KiB
#include <bits/stdc++.h> using namespace std; vector<vector<pair<int, int>>> g; vector<int> dp; void dfs(int v, int par){ int mn = 1e9, second_mn = 1e9; for (auto [u, w] : g[v]){ if (u == par) continue; dfs(u, v); int path = dp[u] + w; if (path < mn){ second_mn = mn; mn = path; }else if (path == mn){ second_mn = path; }else if (path < second_mn){ second_mn = path; } } if (dp[v] != 0) dp[v] = second_mn; //cout << v << ' ' << par << ' ' << dp[v] << endl; } int travel_plan(int N, int M, int R[][2], int W[], int K, int E[]){ g.resize(N); dp.resize(N, 1e9); for (int i = 0; i < M; i++){ int a = R[i][0], b = R[i][1], c = W[i]; g[a].push_back({b, c}); g[b].push_back({a, c}); } for (int i = 0; i < K; i++){ dp[E[i]] = 0; } dfs(0, -1); return dp[0]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...