Submission #1291512

#TimeUsernameProblemLanguageResultExecution timeMemory
1291512goodpjw2008Ceste (COCI17_ceste)C++20
160 / 160
494 ms25212 KiB
#include <bits/stdc++.h> #define int long long using namespace std; struct p{ int x,y,z; bool operator>(const p& a) const { if(x!=a.x) return x>a.x; return y>a.y; } }; vector<p>v[2002]; priority_queue<p,vector<p>,greater<p>>pq; int ans[2002],bst[2002]; signed main(){ ios::sync_with_stdio(0);cin.tie(0); int n,m,a,b,t,c; cin>>n>>m; for(int i = 0; i < m; i++){ cin>>a>>b>>t>>c; v[a].push_back({b,t,c}); v[b].push_back({a,t,c}); } pq.push({0,0,1}); for(int i = 2; i <= n; i++)ans[i]=1e15; fill(bst,bst+n+1,1e9); while(!pq.empty()){ p cur=pq.top();pq.pop(); int x=cur.x,y=cur.y,z=cur.z; if(y>bst[z])continue; bst[z]=y; if(y>0&&x>0){ ans[z]=min(ans[z],x*y); } for(auto &e:v[z]){ pq.push({x+e.z,y+e.y,e.x}); } } for(int i = 2; i <= n; i++){ if(ans[i]>=1e15)cout<<-1<<'\n'; else cout<<ans[i]<<'\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...