Pagini recente » Cod sursa (job #86638) | Cod sursa (job #1725351) | Cod sursa (job #2833631) | Cod sursa (job #321685) | Cod sursa (job #294732)
Cod sursa(job #294732)
#include <fstream.h>
#define dim 100005
ifstream fin("distante.in");
ofstream fout("distante.out");
struct muchie{long x,y,cost;};
muchie c[dim];
char v[dim];
long d[dim];
long n,m,r;
void solve()
{long i;
int sw=1;
for (i=1;i<=m && sw;i++)
if (d[c[i].x]+c[i].cost<d[c[i].y]) sw=0;
else
if (d[c[i].x]+c[i].cost==d[c[i].y]) v[c[i].y]=1;
for (i=1;i<=n && sw; i++)
if (v[i]==0 && i!=r)
sw=0;
if (sw) fout<<"DA"<<'\n';
else
fout<<"NU"<<'\n';
}
int main()
{long i;
int t,j;
fin>>t;
for (j=1;j<=t;j++)
{fin>>n>>m>>r;
memset(v,0,sizeof(v));
memset(d,0,sizeof(d));
for (i=1;i<=n;i++) fin>>d[i];
for (i=1;i<=m;i++) fin>>c[i].x>>c[i].y>>c[i].cost;
if (d[r]==0) solve();
else
fout<<"NU"<<'\n';
}
fout.close();
return 0;
}