Pagini recente » Cod sursa (job #323110) | Cod sursa (job #1107282) | Cod sursa (job #1611711) | Cod sursa (job #1093647) | Cod sursa (job #467398)
Cod sursa(job #467398)
#include <stdio.h>
#define Nmax 50001
int viz[Nmax],d[Nmax];
int t,n,m,s;
void solve()
{
int x,y,c;
for(int ti=1;ti<=t;++ti)
{
int ok=1;
scanf("%d%d%d", &n,&m,&s);
for(int i=1;i<=n;++i)
{
scanf("%d", &c);
d[i]=c;
}
if(d[s])
ok=0;
for(int i=1;i<=m;++i)
{
scanf("%d %d %d", &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(int i=1;i<=n;++i)
if(!viz[i] && i!=s)
ok=0;
if(ok)
printf("DA\n");
else
printf("NU\n");
}
}
int main()
{
freopen("distante.in", "r",stdin);
freopen("distante.out", "w",stdout);
scanf("%d", &t);
solve();
return 0;
}