Submission #522647

#TimeUsernameProblemLanguageResultExecution timeMemory
522647lucriSightseeing (NOI14_sightseeing)C++17
4 / 25
865 ms24328 KiB
#include <iostream> #include <vector> #include <queue> #include <algorithm> using namespace std; int n,m,q,x,y,c,ans[500010]; vector<vector<pair<int,int>>>a; priority_queue<pair<int,int>>b; bool ok[500010]; void constructie(int 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)); } } if(b.empty()) return; int a=b.top().second; b.pop(); constructie(a); return; } int main() { cin>>n>>m>>q; a.resize(n+5); for(int i=1;i<=n;++i) { cin>>x>>y>>c; a[x].push_back(make_pair(y,c)); a[y].push_back(make_pair(x,c)); } ans[1]=100001; constructie(1); ans[1]=0; for(int 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...