Pagini recente » Cod sursa (job #2399571) | Cod sursa (job #560187) | Cod sursa (job #1929050) | Cod sursa (job #2890635) | Cod sursa (job #612074)
Cod sursa(job #612074)
#include<fstream.h>
#include<vector.h>
#define pb push_back
#define N 50001
#define INF 2000000000
#define lul unsigned long long
lul i,k,c,n,m,s,t,l,j,d[N],f[N];
vector<lul> g[N],e[N];
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]=INF;
while(m--)
{x>>i>>k>>c;
g[i].pb(k);
g[k].pb(i);
e[i].pb(c);
e[k].pb(c);}
f[s]=l=0;
for(i=1;i<=n;i++)
for(j=0;j<g[i].size();j++)
if(f[i]>e[i][j]+f[g[i][j]])
f[i]=e[i][j]+f[g[i][j]];
for(i=1;i<=n;i++)
if(f[i]==d[i])
l++;
if(l==n)
y<<"DA\n";
else
y<<"NU\n";}
return 0;}