Pagini recente » Cod sursa (job #3140894) | Cod sursa (job #611986) | Cod sursa (job #2903618) | Cod sursa (job #3294682) | Cod sursa (job #612081)
Cod sursa(job #612081)
#include<fstream.h>
#define N 50001
typedef struct nod
{long info,cost;
struct nod *next;}Nod;
long i,k,c,n,m,s,t,l,d[N],f[N];
Nod *g[N],*p;
void add(Nod *&q,long x,long y)
{Nod *p=new Nod;
p->info=x,p->cost=y,p->next=q,q=p;}
int main()
{ifstream x("distante.in");
ofstream y("distante.out");
x>>t;
while(t--)
{x>>n>>m>>s;
for(i=1;i<=n;i++)
x>>d[i],f[i]=N;
while(m--)
x>>i>>k>>c,add(g[i],k,c),add(g[k],i,c);
f[s]=l=0;
for(i=1;i<=n&&i!=s;i++)
for(p=g[i];p;p=p->next)
if(f[p->info]>p->cost+f[i])
f[p->info]=p->cost+f[i];
for(i=1;i<=n;i++)
if(f[i]==d[i])
l++;
if(l==n&&!d[s])
y<<"DA\n";
else
y<<"NU\n";}
return 0;}