Submission #885873

#TimeUsernameProblemLanguageResultExecution timeMemory
885873MaaxleCrocodile's Underground City (IOI11_crocodile)C++14
0 / 100
171 ms262144 KiB
#include "crocodile.h" #include <bits/stdc++.h> #define range(it, a, b) for (ll it = a; it < b; it++) #define all(x) begin(x), end(x) #define ll long long #define ull unsigned long long #define uset unordered_set #define umap unordered_map using namespace std; vector<vector<pair<int, int>>> adj; vector<int> memo; int dfs (int i) { if (memo[i] != (1 << 30)) return memo[i]; int mini, smini; mini = smini = (1 << 30); for (pair<int, int> k : adj[i]) { int x; x = k.second + (memo[k.first] == (1 << 30) ? dfs(k.first) : memo[k.first]); if (x <= mini) { smini = mini; mini = x; } else smini = min(x, smini); } return (memo[i] = smini); } int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]) { adj.resize(N); memo.resize(N, (1 << 30)); range(i, 0, M) { adj[R[i][0]].push_back({R[i][1], L[i]}); adj[R[i][1]].push_back({R[i][0], L[i]}); } range(i, 0, K) { memo[P[i]] = 0; } return dfs(0); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...