Pagini recente » Cod sursa (job #2809206) | Cod sursa (job #1351561) | Cod sursa (job #2173254) | Cod sursa (job #643160) | Cod sursa (job #13127)
Cod sursa(job #13127)
#include <cstdio>
#include <cstring>
#define FIN "distante.in"
#define FOUT "distante.out"
#define MAXN 60001
int t, ok, i;
long n, m, s, a[MAXN], x, y, c, j, sel[MAXN];
int main () {
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
scanf("%d", &t);
for (i=1; i<=t; i++) {
memset(a, 0, sizeof(a));
ok = 1;
memset(sel, 0, sizeof(sel));
scanf("%ld %ld %ld", &n, &m, &s);
if (!m) ok = 0;
for (j=1; j<=n; j++) scanf("%ld", &a[j]);
for (j=1; j<=m; j++) {
scanf("%ld %ld %ld", &x, &y, &c);
if (a[x] + c == a[y]) sel[y] = 1;
if (a[y] + c == a[x]) sel[x] = 1;
if (a[x] + c < a[y] || a[y] + c < a[x]) ok = 0;
}
for (j=1; j<=n; j++) if ((!sel[j]) && (j!=s)) ok = 0;
if (ok) printf("DA\n"); else printf("NU\n");
}
return 0;
}