Pagini recente » Cod sursa (job #1416879) | Cod sursa (job #1054038) | Cod sursa (job #901044) | Cod sursa (job #1663418) | Cod sursa (job #178977)
Cod sursa(job #178977)
#include <stdio.h>
const long NMAX=50001;
int D[NMAX],i,j,sursa,nteste,n,m,contor,ok,rez[NMAX],nrez,nod1,nod2,c;
int main(){
freopen("distante.in","r",stdin);
freopen("distante.out","w",stdout);
scanf("%d",&nteste);
for (contor=1;contor<=nteste;contor++){
scanf("%d%d%d",&n,&m,&sursa);
for(i=1;i<=n;i++) scanf("%d",&D[i]),rez[i]=0;
if (D[sursa]!=0) ok=0;
else ok=1;
for (i=1;i<=m;i++) {
scanf("%d%d%d",&nod1,&nod2,&c);
if (ok==1){
if ((D[nod1]+c<D[nod2]) || (D[nod2]+c<D[nod1])) ok=0;
else{ if ((nod2!=sursa) && (D[nod1]+c==D[nod2]))
if (!rez[nod2]) {nrez++;rez[nod2]=1;}
if ((nod1!=sursa) && (D[nod2]+c==D[nod1]))
if (!rez[nod1]) {nrez++;rez[nod1]=1;}
}
}
}
if (nrez!=n-1) ok=0;
if (ok) printf("DA\n");
else printf("NU\n");
nrez=0;
}
return 0;
}