Submission #1314289

#TimeUsernameProblemLanguageResultExecution timeMemory
1314289AgageldiCommuter Pass (JOI18_commuter_pass)C++20
0 / 100
310 ms327680 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define N 500005 int tc = 1, n, a[N], S, T, U, V, vis[N], m, ans; vector <tuple <int,int,int>> E[N]; void dfs(int x,int p,int c) { if(x == V) ans = c; for(auto i : E[x]) { int u, v, j; tie(u,v,j) = i; if(u != p) { dfs(u, x, c + (v * (1-vis[j]))); } } } int solve(int x,int p) { if(x == T) return 1; for(auto i : E[x]) { int u, v, j; tie(u, v, j) = i; if(u != p) { if(solve(u, x)) { vis[j] = 1; return 1; } } } return 0; } int32_t main() { ios::sync_with_stdio(0);cin.tie(0); cin >> n >> m >> S >> T >> U >> V; for(int i=1; i <= m; i++) { int u, v, c; cin >> u >> v >> c; E[u].push_back({v,c,i}); E[v].push_back({u,c,i}); } solve(S, 0); dfs(U,0, 0); cout << ans << '\n'; 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...