Pagini recente » Cod sursa (job #496305) | Cod sursa (job #281499) | Cod sursa (job #2937081) | Cod sursa (job #1338287) | Cod sursa (job #654277)
Cod sursa(job #654277)
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
unsigned long i,c[2000][700],j,k,n,m,s,d[700],aux,nr,nri;
fstream f("distante.in.txt",ios::in);
fstream g("distante.out.txt",ios::out);
f>>nr;
for(nri=1;nri<=nr;nri++)
{
f>>n>>m>>s;
for(i=1;i<=n;i++)
f>>d[i];
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
c[i][j]=32000;
for(i=1;i<=m;i++)
{
f>>j>>k>>aux;
c[j][k]=c[k][j]=aux;
}
f.close();
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if((c[i][j]>c[i][k]+c[k][j])&&(i!=j))
c[i][j]=c[i][k]+c[k][j];
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(c[i][j]==32000)
c[i][j]=0;
aux=1;
for(i=1;i<=n;i++)
if(d[i]!=c[s][i])
aux=0;
if(aux)
g<<"DA"<<endl;
else
g<<"NU"<<endl;
}
g.close();
}