Submission #1113190

#TimeUsernameProblemLanguageResultExecution timeMemory
1113190votranngocvyFerries (NOI13_ferries)C++14
40 / 40
207 ms22464 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pii pair<int,int> #define fi first #define se second const int N = 1e5 + 5; const int inf = 1e18; int dist[N],n,m; vector<int>g[N]; priority_queue<int>cost[N]; void dijkstra(int s) { priority_queue<pii,vector<pii>,greater<pii>>q; for (int i = 1; i <= n; i++) dist[i] = inf; q.push({0,s}); dist[s] = 0; while (!q.empty()) { int u = q.top().se,c = q.top().fi; q.pop(); if (dist[u] != c) continue; //minimum path match with maximum cost for (int i = 0; i < (int)g[u].size(); i++) { int v = g[u][i]; int c = cost[v].top(); cost[v].pop(); if (dist[v] > dist[u] + c) { dist[v] = dist[u] + c; q.push({dist[v],v}); } } } } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m; for (int i = 1; i <= m; i++) { int u,v,c; cin >> u >> v >> c; g[v].push_back(u); cost[u].push(c); } dijkstra(n); cout << dist[1] << "\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...