Submission #308822

#TimeUsernameProblemLanguageResultExecution timeMemory
308822juggernautCrocodile's Underground City (IOI11_crocodile)C++14
89 / 100
726 ms47216 KiB
#include"crocodile.h" #include<bits/stdc++.h> #define fr first #define sc second using namespace std; vector<pair<int,int>>g[100005]; pair<int,int>a[100005]; int inf=1e9; int travel_plan(int n,int m,int r[][2],int l[],int k,int p[]){ for(int i=0;i<n;i++)a[i]={inf,inf}; priority_queue<pair<int,int>>q; for(int i=0;i<m;i++){ g[r[i][0]].push_back({r[i][1],l[i]}); g[r[i][1]].push_back({r[i][0],l[i]}); } for(int i=0;i<k;i++) q.push({0,p[i]}),a[p[i]]={0,0}; while(!q.empty()){ int len=-q.top().fr; int v=q.top().sc; q.pop(); if(len>a[v].sc)continue; for(auto to:g[v]) if(a[to.fr].sc>len+to.sc){ a[to.fr].sc=len+to.sc; if(a[to.fr].fr>a[to.fr].sc)swap(a[to.fr].fr,a[to.fr].sc); if(a[to.fr].sc<inf)q.push({-a[to.fr].sc,to.fr}); } } return a[0].sc; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...