Pagini recente » Cod sursa (job #1017235) | Cod sursa (job #358428) | Autentificare | Cod sursa (job #2069038) | Cod sursa (job #1146804)
#include <iostream>
#include<fstream>
#define maxn 100010
using namespace std;
ifstream f("distante.in");
ofstream g("distante.out");
int d[maxn],done[maxn];
int ok,T,n,m,s,x,y,w;
int main()
{
f>>T;
for(int i=1;i<=T;i++){
f>>n>>m>>s;
//ok=1;
for(int i=1;i<=n;i++)
f>>d[i],done[i]=0;
ok=d[s]==0;
done[s]=1;
for(int i=1;i<=m;i++){
f>>x>>y>>w;
if( d[x]+w<d[y] || d[y]+w<d[x])
ok=0;
if(d[x]+w==d[y] && !done[y])
done[y]=1;
if(d[y]+w==d[x] && !done[x])
done[x]=1;
}
//ok=1;
for(int i=1;i<=n && ok;i++)
if(done[i]==0)
ok=0;
if(ok)
g<<"DA"<<'\n';
else
g<<"NU"<<'\n';
}
return 0;
}