Submission #522656

#TimeUsernameProblemLanguageResultExecution timeMemory
522656lucriSightseeing (NOI14_sightseeing)C++17
4 / 25
3581 ms182580 KiB
#include <iostream> #include <vector> #include <queue> #include <algorithm> using namespace std; long long n,m,q,x,y,c,ans[500010]; vector<vector<pair<long long,long long>>>a; priority_queue<pair<long long,long long>>b; bool ok[500010]; void constructie(long long nod) { if(ok[nod]==true) return; ok[nod]=true; for(auto z:a[nod]) { if(min(z.second,ans[nod])>ans[z.first]) { ans[z.first]=min(z.second,ans[nod]); b.push(make_pair(ans[z.first],z.first)); ok[z.first]=false; } } if(b.empty()) return; long long aq=b.top().second; b.pop(); constructie(aq); return; } int main() { cin>>n>>m>>q; a.resize(n+5); for(long long i=1;i<=m;++i) { cin>>x>>y>>c; a[x].push_back(make_pair(y,c)); a[y].push_back(make_pair(x,c)); } ans[1]=100000001; constructie(1); ans[1]=0; for(long long i=1;i<=q;++i) { cin>>x; cout<<ans[x]<<'\n'; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...