Cod sursa(job #2227609)

Utilizator lucametehauDart Monkey lucametehau Data 1 august 2018 10:35:03
Problema Distante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>

using namespace std;

ifstream cin ("distante.in");
ofstream cout ("distante.out");

const int NMAX = 5e4;

int t, n, m, s;
bool ok;

int dp[1 + NMAX];

int main() {
  cin >> t;
  for(; t; t--) {
    cin >> n >> m >> s;
    // merge si Dijkstra dar e mai rapid asa
    ok = 1;
    for(int i = 1; i <= n; i++)
      cin >> dp[i];
    if(dp[s])
      ok = 0;
    for(int i = 1; i <= m; i++) {
      int x, y, cost;
      cin >> x >> y >> cost;
      if(dp[x] + cost < dp[y] || dp[y] + cost < dp[x])
        ok = 0;
    }
    if(ok)
      cout << "DA\n";
    else
      cout << "NU\n";
  }
  return 0;
}