Pagini recente » Cod sursa (job #179864) | Cod sursa (job #2402091) | Cod sursa (job #841130) | Cod sursa (job #2345566) | Cod sursa (job #593743)
Cod sursa(job #593743)
#include <cstring>
#include <fstream>
#define MAX 50001
using namespace std;
int D[MAX];
char ok[MAX];
int main()
{
int M,N,S,T,x,y,c,end;
ifstream in;
ofstream out;
in.open("distante.in");
out.open("distante.out");
in>>T;
for(;T;--T)
{
in>>N>>M>>S;
memset(D,0,sizeof(D));
memset(ok,0,sizeof(ok));
for(int i=1;i<=N;i++) in>>D[i];
end=0;
ok[S]=1;
for(;M;--M)
{
in>>x>>y>>c;
if(D[x]+c<D[y]) end=1;
else
if(D[x]+c==D[y]) ok[y]=1;
}
if(D[S]!=0) end=1;
if(end) out<<"NU\n";
else
{
for(int i=1;i<=N;i++)
if(ok[i]!=1)
{
end=1;
break;
}
if(end) out<<"NU\n";
else out<<"DA\n";
}
}
in.close();
out.close();
return 0;
}