Submission #582605

#TimeUsernameProblemLanguageResultExecution timeMemory
5826051neCrocodile's Underground City (IOI11_crocodile)C++14
46 / 100
2 ms596 KiB
#include "crocodile.h" #include <bits/stdc++.h> using namespace std; int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]) { vector<vector<pair<long long,long long>>>adj(N); for (int i = 0;i<M;++i){ adj[R[i][0]].push_back({R[i][1],L[i]}); adj[R[i][1]].push_back({R[i][0],L[i]}); } vector<bool>visited(N,false); vector<vector<long long>>dp(N,vector<long long>(2,1e9)); for (int i = 0;i<K;++i){dp[P[i]][0] = 0;dp[P[i]][1] = 0;visited[P[i]] = true;} function<long long(int)>dfs = [&](int u){ if (visited[u])return dp[u][1]; visited[u] = true; for (auto x:adj[u]){ long long temp = dfs(x.first) + x.second; if (temp < dp[u][0]){ dp[u][1] = dp[u][0]; dp[u][0] = temp; } else if (temp < dp[u][1]){ dp[u][1] = temp; } } return dp[u][1]; }; long long ans = dfs(0); return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...