Cod sursa(job #275559)

Utilizator andrabAndra B andrab Data 10 martie 2009 15:48:31
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<fstream.h>
#define max 50000
#define maxm 250000

ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");

long  n,m,d[max];
  struct nod{long x,y;int c;
	  } a[maxm];

void citire()
{long i;
 fin>>n>>m;
 for(i=1;i<=m;i++)
 {fin>>a[i].x>>a[i].y>>a[i].c;
  if(a[i].x==1) d[a[i].y]=a[i].c;
  }

 for(i=1;i<=n;i++)
 if(d[i]==0) d[i]=max;
 }

int main()
{long i,x,y;
int cc;
 citire();

 for(cc=1;cc==1;)
 {cc=0;
  for(i=1;i<=m;i++)


   if(d[a[i].y]>d[a[i].x]+a[i].c)
   {d[y]=d[x]+a[i].c;
    cc=1;
    }

  }

 for(i=2;i<=n;i++)
   if(d[i]==max) fout<<"0 ";
    else fout<<d[i]<<" ";

 fin.close();
 fout.close();
 return 0;
 }