Submission #299854

#TimeUsernameProblemLanguageResultExecution timeMemory
299854caoashTransport (COCI19_transport)C++14
0 / 130
1098 ms10308 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using vi = vector<int>; using vl = vector<ll>; #define pb push_back #define rsz resize #define all(x) begin(x), end(x) #define sz(x) (int)(x).size() using pi = pair<int,int>; #define f first #define s second #define mp make_pair const int MX = 200005; const int MOD = (int) (1e9 + 7); const ll INF = (ll) 1e18; ll a[MX]; vector<pi> adj[MX]; bool vis[MX]; void dfs(int v, int p, ll dist) { if (dist < 0) { return; } dist += a[v]; vis[v] = true; for (pi to : adj[v]) { if (to.f != p) { dfs(to.f, v, dist - to.s); } } } int main(){ ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; for (int i = 0; i < n; i++) cin >> a[i]; for (int i = 0; i < n - 1; i++) { int u, v, w; cin >> u >> v >> w; u--, v--; adj[u].pb(mp(v, w)); adj[v].pb(mp(u, w)); } int ans = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (i == j) continue; memset(vis, false, sizeof(vis)); dfs(i, -1, 0LL); if (vis[j]) { ++ans; } } } cout << ans << '\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...
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...