Pagini recente » Cod sursa (job #134534) | Cod sursa (job #1085241) | Cod sursa (job #1133975) | Cod sursa (job #22252) | Cod sursa (job #381175)
Cod sursa(job #381175)
#include <iostream.h>
#include <fstream.h>
#define nmax 50100
int D[nmax],indicat[nmax];
int main()
{ifstream in("distante.in");
ofstream out("distante.out");
int T,N,M,S,i,a,b,c,ok;
for(in>>T;T;T--)
{ok=1;
in>>N>>M>>S;
for(i=1;i<=N;i++) in>>D[i];
if(D[S]!=0) ok=0;
for(i=1;i<=M && ok;i++)
{in>>a>>b>>c;
if(D[a]+c<D[b]) ok=0;
if(b!=S && (D[a]+c)==D[b]) indicat[b]=1;
if(a!=S && (D[b]+c)==D[a]) indicat[a]=1;
}
for(i=1;i<=N && ok;i++)
if(i!=S && !indicat[i])
ok=0;
if(ok) out<<"DA"<<"\n";
else out<<"NU"<<"\n";
}
in.close();out.close();
return 0;
}