Pagini recente » Cod sursa (job #33943) | Cod sursa (job #40548) | Istoria paginii autumn-warmup-2007/clasament/runda-1 | Cod sursa (job #590169) | Cod sursa (job #22302)
Cod sursa(job #22302)
#include<fstream.h>
ifstream f("distante.in");
ofstream g("distante.out");
int a[10000][10000],d[1000000],viz[1000000],n,m,ok,dist;
int DF(int x)
{ int j;
viz[x]=1;
if(x==n) { if(dist!=d[x]) ok=0;
dist=0;
}
for(j=1;j<=n;j++)
if(a[x][j] && !viz[j]){ dist+=a[x][j]; DF(j); }
return 0;
}
int distanta()
{ int x,y,c,i,t,q;
f>>t;
while(t)
{ ok=1;
f>>n>>m>>q;
for(i=1;i<=n;i++) f>>d[i];
for(i=1;i<=m;i++)
{ f>>x>>y>>c;
a[x][y]=c;
a[y][x]=c;
}
DF(q);
if(ok) g<<"DA"; else g<<"NU";
t--;
for(i=1;i<=n;i++) d[i]=viz[i]=0;
}
return 0;
}
int main()
{ distanta();
g<<'\n';
return 0;
}