Submission #815605

#TimeUsernameProblemLanguageResultExecution timeMemory
815605OAleksaCrocodile's Underground City (IOI11_crocodile)C++14
89 / 100
2066 ms143832 KiB
#include <bits/stdc++.h> //#include "factories.h" #include "crocodile.h" #define f first #define s second using namespace std; const int maxn = 1e5 + 69; set<pair<int, int>> g[maxn]; vector<int> d(maxn, 1e9); int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]) { for(int i = 0;i < M;i++) { g[R[i][0]].insert({R[i][1], L[i]}); g[R[i][1]].insert({R[i][0], L[i]}); } priority_queue<pair<int, int>> pq; for(int i = 0;i < K;i++) { for(auto u : g[P[i]]) pq.push({-u.s, u.f}); d[P[i]] = 0; } vector<int> cnt(N); while(!pq.empty()) { auto u = pq.top(); pq.pop(); if(d[u.s] != 1e9) continue; cnt[u.s]++; if(cnt[u.s] == 2) { d[u.s] = -u.f; for(auto v : g[u.s]) pq.push({-v.s + u.f, v.f}); } } return d[0]; } // int main() // { // ios_base::sync_with_stdio(false); // cin.tie(0); // cout.tie(0); // int tt = 1; // //cin >> tt; // while(tt--) { // int n, m; // cin >> n >> m; // int r[m][2]; // for(int i = 0;i < m;i++) // cin >> r[i][0] >> r[i][1]; // int l[m]; // for(int i = 0;i < m;i++) // cin >> l[i]; // int k; // cin >> k; // int p[k]; // for(int i = 0;i < k;i++) // cin >> p[i]; // cout << travel_plan(n, m, r, l, k, p); // } // return 0; // }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...