Cod sursa(job #2311129)
| Utilizator | Data | 2 ianuarie 2019 17:40:18 | |
|---|---|---|---|
| Problema | Distante | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.5 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in("distante.in");
ofstream out("distante.out");
const int DIM = 5e4 + 7;
int d[DIM];
void solve()
{
int n, m, st;
in >> n >> m >> st;
for(int i = 1; i <= n; i++)
in >> d[i];
bool ok = true;
while(m--)
{
int x, y, c;
in >> x >> y >> c;
if(d[x] + c < d[y] || d[y] + c < d[x])
ok = false;
}
if(d[st] != 0 || ok == false)
out << "NU\n";
else
out << "DA\n";
}
int main()
{
int t;
in >> t;
while(t--)
solve();
}