Pagini recente » Cod sursa (job #2338606) | Cod sursa (job #3004034) | Cod sursa (job #769356) | Cod sursa (job #1232030) | Cod sursa (job #590699)
Cod sursa(job #590699)
#include<fstream>
using namespace std;
int t,n,m,s,i,j,x,y,cost,minim,nr,nr1,ok;
long a[2000][2000],c[501],c1[501];
int main()
{
ifstream f("distante.in");
ofstream g("distante.out");
f>>t;
minim=10000;
while(t)
{
f>>n>>m>>s;
for(i=1;i<=n;++i)
f>>c[i];
for(;m;--m)
{
f>>x>>y>>cost;
a[x][y]=cost;
a[y][x]=cost;
}
for(j=1;j<=n;j++)
if(j!=s && a[s][j]!=0)
c1[j]=a[s][j];
else
if(j!=s && a[s][j]==0)
{
nr=j;
for(j=1;j<=n;j++)
{
if(a[s][j]<minim&&a[s][j]!=0)
if(a[j][nr]!=0)
{
minim=a[s][j];
nr1=j;
}
}
c1[nr]=minim+a[nr1][nr];
}
for(i=1;i<=n;i++)
{
if(c[i]==c1[i])
ok=1;
else
ok=0;
}
if(ok==1)
g<<"Da";
else
if(ok==0)
g<<"Nu";
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]=0;
g<<"\n";
t--;
}
}