Pagini recente » Cod sursa (job #2746244) | Cod sursa (job #2895460) | Cod sursa (job #969930) | Cod sursa (job #2534110) | Cod sursa (job #612079)
Cod sursa(job #612079)
#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]=d[i];
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++)
for(p=g[i];p;p=p->next)
if(f[i]>p->cost+f[p->info])
f[i]=p->cost+f[p->info];
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;}