Pagini recente » Cod sursa (job #1558463) | Cod sursa (job #1490982) | Cod sursa (job #2774455) | Clasamentul arhivei de probleme | Cod sursa (job #513961)
Cod sursa(job #513961)
#include <fstream>
using namespace std;
const char InFile[]="distante.in";
const char OutFile[]="distante.out";
const int MaxN=50111;
ifstream fin(InFile);
ofstream fout(OutFile);
int D[MaxN],x,y,cost,M,N,T,S,C[MaxN];
bool ok;
int main()
{
fin>>T;
for(register int t=0;t<T;++t)
{
fin>>N>>M>>S;
for(register int i=1;i<=N;++i)
{
fin>>D[i];
}
for(register int i=0;i<M;++i)
{
fin>>x>>y>>cost;
if(D[x]+cost==D[y])
{
C[y]=1;
}
if(D[y]+cost==D[x])
{
C[x]=1;
}
}
if(D[S]==0)
{
C[S]=1;
}
ok=true;
for(register int i=1;i<=N;++i)
{
if(C[i]==0)
{
ok=false;
break;
}
}
if(ok)
{
fout<<"DA\n";
}
else
{
fout<<"NU\n";
}
for(register int i=1;i<=N;++i)
{
C[i]=0;
}
}
fin.close();
fout.close();
return 0;
}