Pagini recente » Cod sursa (job #2451307) | Cod sursa (job #398776) | Cod sursa (job #2326642) | Cod sursa (job #2325413) | Cod sursa (job #1224360)
#include<fstream>
#include<algorithm>
#include<cstring>
using namespace std;
int t,n,m,s,i,d[50005],x,y,c;
bool u,viz[50005];
int main()
{
ifstream cin("distante.in");
ofstream cout("distante.out");
cin>>t;
while(t--)
{
memset(viz,0,sizeof(viz));
cin>>n>>m>>s; viz[s]=1;
for(i=1;i<=n;++i) cin>>d[i];
u=(d[s]) ? 1:0;
while(m--)
{
cin>>x>>y>>c;
if(d[x]+c<d[y]) u=1;
if(d[y]+c<d[x]) u=1;
if(d[x]+c==d[y]) viz[y]=1;
if(d[y]+c==d[x]) viz[x]=1;
}
for(i=1;i<=n && !u;++i)
if(!viz[i]) u=1;
if(u) cout<<"NU\n"; else cout<<"DA\n";
}
return 0;
}