Cod sursa(job #278518)

Utilizator silaghi_raulSzilagyi Raul Razvan silaghi_raul Data 12 martie 2009 13:03:23
Problema Algoritmul lui Dijkstra Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.83 kb
#include<stdio.h>
int a[100][100];
int n,m;
int d[100],t[100];
void citire()
{
  FILE *in = fopen("dijkstra.in","rt");
  int x,y,z;
  fscanf(in,"%ld %ld",&n,&m);
  for(long i=1;i<=m;i++)
  {
   fscanf(in,"%d %d %d",&x,&y,&z);
   a[x][y]=c;
  }
  fclose(in);
}
int bellman_ford(int st)
{
  for(i=1;i<=n;i++)
  {
    d[i]=inf;
    t[i]=0;
  }
  d[st]=0;
  for(i=1;i<=n-1;i++)
  {
    for(j=1;j<=m;j++)
     {
       if(d[j]>d[i]+c[i][j])
       {
         d[j]=d[i]+c[i][j];
         t[j]=i;
       }
     }
  }
  for(i=1;i<=m;i++)
  {
    if(d[j]>d[i]+c[i][j])
    {
      return 0;
    }
  }
  return 1;
}
int main()
{
  int i;
  citire();
  bellman_ford();
  FILE *out=fopen("dijkstra.out","wt");
  for(i=2;i<=n;i++)
  fprintf(out,"%ld ",d[i]==inf ? 0 : d[i]);
  fclose(out);
  return 0;
}