제출 #1339507

#제출 시각아이디문제언어결과실행 시간메모리
1339507vjudge1Transport (COCI19_transport)C++20
0 / 100
0 ms0 KiB
#include <bits/stdc++.h>

using namespace std;

using ll = long long;
#define int ll

const int N = 1e5 + 5;
int a[N], ans = 0;
vector<pair<int, int>> vec[N];

void dfs(int nod, int papa, int cost) {
   if (cost < 0) {
      return;
   }
   ans ++;
   for (auto i : vec[nod]) {
      if (i.first != papa) {
         dfs(i.first, nod, cost + a[nod] - i.second);
      }
   }
}

signed main() {
   int n;
   cin >> n;
   for (int i = 1; i <= n; i ++) {
      cin >> a[i];
   }
   for (int i = 1; i < n; i ++) {
      int u, v, w;
      cin >> u >> v >> w;
      vec[u].push_back({v, w});
      vec[v].push_back({u, w});
   }
   for (int i = 1; i <= n; i ++) {
      dfs(i, 0, 0);
   }
   cout << ans - n << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...