Submission #433431

#TimeUsernameProblemLanguageResultExecution timeMemory
433431MilosMilutinovicCrocodile's Underground City (IOI11_crocodile)C++14
100 / 100
1186 ms75456 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<int, int>>> g(n); for (int i = 0; i < m; i++) { g[r[i][0]].push_back({r[i][1], l[i]}); g[r[i][1]].push_back({r[i][0], l[i]}); } const int inf = 1e9 + 1; vector<int> dist(n, inf); priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> que; for (int i = 0; i < k; i++) { for (auto& e : g[p[i]]) { que.push({e.second, e.first}); } dist[p[i]] = 0; } vector<int> cnt(n); while (!que.empty()) { auto x = que.top(); que.pop(); if (dist[x.second] != inf) { continue; } cnt[x.second]++; if (cnt[x.second] == 2) { dist[x.second] = x.first; for (auto y : g[x.second]) { que.push({x.first + y.second, y.first}); } } } return dist[0]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...