Submission #720245

#TimeUsernameProblemLanguageResultExecution timeMemory
720245Ahmed57Ceste (COCI17_ceste)C++14
64 / 160
2566 ms131072 KiB
#include <bits/stdc++.h> using namespace std; #define int long long unordered_map<long long,long long> cost[2005]; unordered_map<long long,long long> vis[2005]; vector<pair<int,pair<int,int>>> adj[2005]; signed main(){ int n,m; cin>>n>>m; //if(n<=100)assert(0); for(int i = 0;i<m;i++){ int a,b,c,d; cin>>a>>b>>c>>d; adj[a].push_back({b,{c,d}}); adj[b].push_back({a,{c,d}}); } priority_queue<pair<int,pair<int,int>>> q; q.push({0,{0,1}}); cost[1][0]=0; vis[1][0] = 1; while(!q.empty()){ int no = q.top().second.second; int se = q.top().second.first; int co = -q.top().first; q.pop(); if(cost[no][se]<co)continue; for(auto j:adj[no]){ if(se+j.second.first>10004)continue; if(!vis[j.first][se+j.second.first]||cost[j.first][se+j.second.first]>co+j.second.second){ cost[j.first][se+j.second.first] = co+j.second.second; vis[j.first][se+j.second.first] = 1; q.push({-cost[j.first][se+j.second.first],{se+j.second.first,j.first}}); } } } for(int i = 2;i<=n;i++){ long long ans = 1e15; for(auto j:vis[i]){ ans = min(ans,j.first*cost[i][j.first]); } if(ans==1e15){ cout<<"-1"<<endl; } else cout<<ans<<endl; } }
#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...