Pagini recente » Cod sursa (job #2724758) | Cod sursa (job #1875910) | Cod sursa (job #2092765) | Cod sursa (job #1907272) | Cod sursa (job #1909023)
#include <cstdio>
#include <cstring>
#define MAXN 60001
using namespace std;
int t, ok, i;
long n, m, s, a[MAXN], x, y, c, j, sel[MAXN];
int main ()
{
freopen("distante.in", "r", stdin);
freopen("distante.out", "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;
}