Pagini recente » Cod sursa (job #1875541) | Cod sursa (job #2191069) | Cod sursa (job #2401826) | Cod sursa (job #1864894) | Cod sursa (job #178958)
Cod sursa(job #178958)
#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=1 ;
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]) ok=0;
else if ((nod2!=sursa) && (D[nod1]+c==D[nod2]))
if (!rez[nod2]) {nrez++;rez[nod2]=1;}
}
}
if (nrez!=n-1) ok=0;
if (ok) printf("DA\n");
else printf("NU\n");
nrez=0;
}
return 0;
}