Pagini recente » Cod sursa (job #2156703) | Cod sursa (job #2918959) | Cod sursa (job #1238065) | Cod sursa (job #1536142) | Cod sursa (job #279167)
Cod sursa(job #279167)
#include<stdio.h>
int n,m,s,a[50003],b[50003],c[50003],ok[50003],ok1,d[50003],t,i;
int main()
{
freopen("distante.in","r",stdin);
freopen("distante.out","w",stdout);
scanf("%d\n",&t);
for(;t;--t)
{
scanf("%d %d %d",&n,&m,&s);
for(i=1;i<=n;++i)
scanf("%d",d[i]);
for(i=1;i<=m;++i)
scanf("%d %d %d",&a[i],&b[i],&c[i]);
if(d[s])
printf("NU\n");
else
{
ok[s]=1;
ok1=0;
for(i=1;i<=m;++i)
{
if(d[a[i]]+c[i]<d[b[i]])
{
ok1=1;
break;
}
if(d[b[i]]+c[i]<d[a[i]])
{
ok1=1;
break;
}
if(d[a[i]]+c[i]==d[b[i]])
ok[a[i]]=1;
if(d[b[i]]+c[i]==d[a[i]])
ok[b[i]]=1;
}
for(i=1;i<=n;++i)
if(!ok[i])
{
ok1=1;
break;
}
if(ok1)
printf("NU\n");
else
printf("DA\n");
}
}
return 0;
}