Pagini recente » Cod sursa (job #295812) | Cod sursa (job #2836990) | Cod sursa (job #2267306) | Cod sursa (job #2392589) | Cod sursa (job #1473434)
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <vector>
#define inf 1000000000
#define maxN 50002
using namespace std;
int n, N, m, s, nr, t, i, j, d[maxN];
bool used[maxN];
void read()
{
int a, b, c;
freopen("distante.in", "r", stdin);
freopen("distante.out", "w", stdout);
scanf("%d", &t);
while (t --)
{
scanf("%d %d %d", &n, &m, &s);
for (i = 1; i <= n; ++ i)
{
scanf("%d", &d[i]);
used[i] = 0;
}
nr = 1;
used[s] = 1;
for (i = 1; i <= m; ++ i)
{
scanf("%d %d %d", &a, &b, &c);
if (!used[b] && d[a] + c == d[b])
used[b] = 1,
++ nr;
if (!used[a] && d[b] + c == d[a])
used[a] = 1,
++ nr;
if (d[a] + c < d[b] || d[b] + c < d[a])
d[s] = inf;
}
if (d[s] != 0 || nr != n)
printf("NU\n");
else
printf("DA\n");
}
}
int main()
{
read();
return 0;
}