Submission #109139

#TimeUsernameProblemLanguageResultExecution timeMemory
109139pamajCrocodile's Underground City (IOI11_crocodile)C++17
0 / 100
4 ms3072 KiB
#include <bits/stdc++.h> #include "crocodile.h" using namespace std; const int maxn = 1e5 + 10; typedef pair<int, int> pii; int vis[maxn], dist[maxn]; vector<pii> G[maxn]; int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]) { memset(dist, 0x3f3f3f3f, sizeof(dist)); for(int i = 0; i < M; i++) { int a = R[i][0], b = R[i][1]; G[a].push_back({L[i], b}); G[b].push_back({L[i], a}); } priority_queue<pii, vector<pii>, greater<pii>> q; for(int i = 0; i < K; i++) { dist[P[i]] = 0; q.push({0, P[i]}); } while(!q.empty()) { auto a = q.top(); q.pop(); if(vis[a.second] == 0) { vis[a.second]++; continue; } else if(vis[a.second] == 2) { continue; } vis[a.second]++; for(auto u : G[a.second]) { if(dist[u.second] > dist[a.second] + u.first) { dist[u.second] = dist[a.second] + u.first; q.push({dist[u.second], u.second}); } } } return dist[0]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...