제출 #990992

#제출 시각아이디문제언어결과실행 시간메모리
990992vjudge1악어의 지하 도시 (IOI11_crocodile)C++17
100 / 100
297 ms72092 KiB
#include<bits/stdc++.h> using namespace std; #define ALL(a) a.begin(), a.end() using pii = pair<int, int>; const int N = 1e5 + 5; vector<pii> adj[N]; int cnt[N]; void connect(int u, int v, int w) { adj[u].emplace_back(v, w); adj[v].emplace_back(u, w); } int travel_plan(int n, int nEdges, int R[][2], int l[], int nExits, int a[]) { priority_queue<pii, vector<pii>, greater<pii>> Q; for(int i = 0; i < nEdges; i++) connect(R[i][0], R[i][1], l[i]); for(int i = 0; i < nExits; i++) { cnt[a[i]]++; Q.emplace(0, a[i]); } for(int i = 0; i < n; i++) sort(ALL(adj[i]), [&](pii a, pii b) { return a.second < b.second; }); int ans = -1; while(!Q.empty()) { auto [weight, u] = Q.top(); Q.pop(); cnt[u]++; if(cnt[u] == 2) { if(u == 0) { ans = weight; break; } for(auto [v, w] : adj[u]) { if(cnt[v] < 2) Q.emplace(weight + w, v); } } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...