Pagini recente » Cod sursa (job #1586657) | Cod sursa (job #2148846) | Cod sursa (job #2251528) | Cod sursa (job #886749) | Cod sursa (job #146261)
Cod sursa(job #146261)
#include <stdio.h>
#include <string.h>
long long n, m, s, t, d[50005], viz[50005];
int main()
{
freopen("distante.in","r",stdin);
freopen("distante.out","w",stdout);
scanf("%lld",&t);
long long i, ok, x, y, c;
while (t--)
{
ok = 1;
scanf("%lld %lld %lld",&n,&m,&s);
for (i = 1; i <= n; i++) {scanf("%lld",&d[i]); viz[i] = 0;}
viz[s] = 1;
if (d[s]) ok = 0;
else
for (i = 1; i <= m; i++)
{
scanf("%lld %lld %lld",&x,&y,&c);
if (d[x] + c < d[y]) ok = 0;
else if (d[x] + c == d[y]) viz[y] = 1;
if (d[y] + c < d[x]) ok = 0;
else if (d[y] + c == d[x]) viz[x] = 1;
}
for (i = 1; i <= n; i++) if (!viz[i]) ok = 0;
if (ok) printf("DA\n");
else printf("NU\n");
}
return 0;
}