Submission #472509

#TimeUsernameProblemLanguageResultExecution timeMemory
472509ZaZo_Toll (BOI17_toll)C++14
10 / 100
70 ms4652 KiB
#include <bits/stdc++.h> #define ZAZO ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); //#define int long long using namespace std; vector<pair<int,int>>edges[50001]; int k , n , m , o ; int dist[50001],vis[50001]={0}; void prepare() { for(int i = 0 ; i < n+1 ; i ++) dist[i]=INT_MAX; } void djk(int s , int e) { priority_queue<pair<int,int>>pq; dist[s]=0; pq.push({0,s}); while(!pq.empty()) { int c = -pq.top().first , u = pq.top().second; vis[u]=1; pq.pop(); for(int i = 0 ; i < edges[u].size() ; i++) { if(!vis[edges[u][i].first]&&dist[edges[u][i].first] > dist[u] + edges[u][i].second) { dist[edges[u][i].first] = dist[u] + edges[u][i].second; pq.push({-dist[edges[u][i].first],edges[u][i].first}); } } } } int32_t main() { ZAZO cin >> k >> n >> m >> o ; for(int i = 0 ; i < m ; i ++) { int a , b , t; cin >> a >> b >> t; edges[a].push_back({b,t}); } vector<pair<int,pair<int,int>>>v; prepare(); djk(0,n); for(int i = 0 ; i < o ; i ++) { int a , b; cin >> a >> b; v.push_back({i,{a,b}}); } int ans[o]={0}; sort(v.begin(),v.end()); for(int i = 0 ; i < v.size(); i ++){ int a = v[i].second.first , b = v[i].second.second; if(!vis[a]) { prepare(); memset(vis,0,sizeof vis); djk(a,n); } if(dist[b]!=INT_MAX) ans[v[i].first]=dist[b]; else ans[v[i].first]=-1; } for(int i = 0 ; i < o ; i++) cout<<ans[i]<<'\n'; }

Compilation message (stderr)

toll.cpp: In function 'void djk(int, int)':
toll.cpp:22:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |     for(int i = 0 ; i < edges[u].size() ; i++)
      |                     ~~^~~~~~~~~~~~~~~~~
toll.cpp:19:9: warning: unused variable 'c' [-Wunused-variable]
   19 |     int c = -pq.top().first , u = pq.top().second;
      |         ^
toll.cpp: In function 'int32_t main()':
toll.cpp:52:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, std::pair<int, int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   52 |   for(int i = 0 ; i < v.size(); i ++){
      |                   ~~^~~~~~~~~~
#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...