제출 #998501

#제출 시각아이디문제언어결과실행 시간메모리
998501AlfraganusCrocodile's Underground City (IOI11_crocodile)C++17
100 / 100
471 ms60496 KiB
#include <bits/stdc++.h> #include "crocodile.h" using namespace std; int travel_plan(int n, int m, int r[][2], int l[], int k, int p[]){ vector<vector<array<int, 2>>> graph(n); for(int i = 0; i < m; i ++) graph[r[i][0]].push_back({r[i][1], l[i]}), graph[r[i][1]].push_back({r[i][0], l[i]}); vector<int> mins1(n, 1e9), mins2(n, 1e9); for(int i = 0; i < k; i ++) mins1[p[i]] = 0, mins2[p[i]] = 0; set<array<int, 2>> st; for(int i = 0; i < k; i ++) st.insert({0, p[i]}); while(!st.empty()){ auto [d, x] = *st.begin(); st.erase(st.begin()); for(auto [y, t] : graph[x]){ if(mins1[y] > t + d){ st.erase({mins2[y], y}); mins2[y] = mins1[y]; mins1[y] = t + d; st.insert({mins2[y], y}); } else if(mins2[y] > t + d){ st.erase({mins2[y], y}); mins2[y] = t + d; st.insert({mins2[y], y}); } } } return mins2[0]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...