제출 #1316480

#제출 시각아이디문제언어결과실행 시간메모리
1316480khanhphucscratch악어의 지하 도시 (IOI11_crocodile)C++20
100 / 100
461 ms50904 KiB
#include "crocodile.h" #include<bits/stdc++.h> using namespace std; vector<array<int, 2>> ad[100005]; int dis[100005], c[100005]; int travel_plan(int n, int m, int R[][2], int L[], int K, int P[]) { for(int i = 0; i < m; i++){ int u = R[i][0], v = R[i][1], c = L[i]; ad[u].push_back({v, c}); ad[v].push_back({u, c}); } priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> w; memset(dis, -1, sizeof(dis)); for(int i = 0; i < K; i++){ int u = P[i]; c[u] = 1; dis[u] = 0; w.push({0, u}); } while(w.size() > 0){ int u = w.top().second, d = w.top().first; w.pop(); //cerr<<"A"<<u<<" "<<d<<" "<<c[u]<<" "<<c[0]<<endl; if(++c[u] != 2) continue; dis[u] = d; for(auto &[v, dd] : ad[u]) if(dis[v] == -1){ w.push({d+dd, v}); } } return dis[0]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...