Cod sursa(job #3320459)

Utilizator vvalentinCiun Valentin vvalentin Data 5 noiembrie 2025 21:34:08
Problema Distante Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <bits/stdc++.h>
#define ll long long
#define INF 0x3f3f3f3f3f3f3f3f
using namespace std;

void solve() {
  int n, m, a, b, c, s;
  cin >> n >> m >> s;
  vector<int> initial(n + 1);
  bool ans = 1;
  for (int i = 1; i <= n; i++) cin >> initial[i];
  if (initial[s] != 0) {
    cout << "NU\n";
    return;
  }
  while (m--) {
    cin >> a >> b >> c;
    if (initial[a] + c < initial[b] || initial[b] + c < initial[a]) {
      ans = 0;
    }
  }
  if (ans) {
    cout << "DA\n";
    return;
  }
  cout << "NU\n";
}

int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0); cout.tie(0);
  #ifndef ONLINE_JUDGE
  freopen("distante.in", "r", stdin);
  freopen("distante.out", "w", stdout);
  #endif
  /*
  freopen("D:\\cf2\\problema\\output.txt", "w", stdout);
  freopen("D:\\cf2\\problema\\input.txt", "r", stdin);
  */
  int tt; cin >> tt;
  while (tt--) solve();

  return 0;
}