Submission #1203775

#TimeUsernameProblemLanguageResultExecution timeMemory
1203775chawinknCommuter Pass (JOI18_commuter_pass)C++20
0 / 100
153 ms17676 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pii pair<int,int> vector<pii> g[100009]; vector<int> distS(100009, 9e18), distT(100009, 91e8), distV(100009, 9e18); priority_queue<pii,vector<pii>,greater<pii>> pq; void sp(vector<int>& dist, int u) { pq.push({dist[u]=0, u}); while (!pq.empty()) { auto [d,u]=pq.top(); pq.pop(); for (auto [v,w] : g[u]) if (d+w < dist[v]) pq.push({dist[v]=d+w, v}); } } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n, m, S, T, U, V; cin >> n >> m >> S >> T >> U >> V; while (m--) { int u, v, w; cin >> u >> v >> w; g[u].push_back({v, w}); g[v].push_back({u, w}); } sp(distS, S), sp(distT, T); sp(distV, V); int ans=9e18; for (int i = 1; i <= n; i++) if (distS[i]+distT[i] == distS[T]) ans = min(ans, distV[i]); cout << ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...