Submission #518891

#TimeUsernameProblemLanguageResultExecution timeMemory
518891sudheerays123Ferries (NOI13_ferries)C++17
17 / 40
150 ms14356 KiB
#include <bits/stdc++.h> using namespace std; #define fast ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); #define ll long long int #define tc ll test;cin >> test;while(test--) #define vi vector<ll> #define pll pair<ll,ll> #define pb push_back #define mp make_pair #define INF 1e18 #define MOD 1000000007 #define ff first #define ss second #define in >> #define out << #define space << " " << #define spacef << " " #define fo(i,a,b) for(ll i = a; i <= b; i++) #define nextline out "\n" #define print(x) for(auto i : x ) cout out i spacef #define mmax(x,i) x = max(x,i) #define mmin(x,i) x = min(x,i) #define N 105 int main() { fast; ll n,m; cin in n in m; vector<pll> reverse_adj[n+5]; vector<pll> nodes; fo(i,1,m){ ll a,b,c; cin in a in b in c; reverse_adj[b].pb(mp(a,c)); if(a == 1) nodes.pb(mp(b,c)); } vi dist(n+5,INF); priority_queue<pll> q; vector<bool> visited(n+5); q.push(mp(0,n)); dist[n] = 0; while(!q.empty()){ ll a = q.top().second; q.pop(); if(visited[a]) continue; visited[a] = true; for(auto u : reverse_adj[a]){ if(dist[a]+u.second < dist[u.first]){ dist[u.first] = dist[a]+u.second; q.push(mp(-dist[u.first],u.first)); } } } vi first; vi second; for(auto u : nodes){ first.pb(dist[u.first]); second.pb(u.second); } sort(first.begin(),first.end()); sort(second.rbegin(),second.rend()); ll minans = INF; fo(i,0,nodes.size()-1) mmin(minans,first[i]+second[i]); cout out minans; return 0; }

Compilation message (stderr)

ferries.cpp: In function 'int main()':
ferries.cpp:18:35: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 | #define fo(i,a,b) for(ll i = a; i <= b; i++)
......
   78 |  fo(i,0,nodes.size()-1) mmin(minans,first[i]+second[i]);
      |     ~~~~~~~~~~~~~~~~~~             
ferries.cpp:78:2: note: in expansion of macro 'fo'
   78 |  fo(i,0,nodes.size()-1) mmin(minans,first[i]+second[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...