Cod sursa(job #654278)

Utilizator teo721Pavel Teo teo721 Data 30 decembrie 2011 00:00:06
Problema Distante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#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",ios::in);
    fstream g("distante.out",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();
    
}