Cod sursa(job #951061)

Utilizator moonRadu Chichi moon Data 19 mai 2013 02:21:31
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<fstream>
#define INF 1<<31;
using namespace std;

int n,m,vis[50000],dist[50000], con[50000][50000];
int main()
{
  ifstream f("dijkstra.in");
  ofstream g("dijkstra.out");

  f>>n>>m;

  for(int i=0;i<m;i++)
    f>>x>>y>>c, con[x][y]=c;

  for(int i=0;i<n;i++)
  {
    dist[i] = INF;
    vis[i] = 0;
  }
  
  d[0] = 0;
  

  int nn=0;
  while(nn<=n)
  {
    int min = INF, minI;
    for(int j=0;j<n;j++)
    {
      if(dist[j]<min && !vis[j])
      {
        min = dist[j];
        minI = j;
      }
    }

    vis[minI] = 1;

    for(int i=0;i<n;i++)
      if(dist[minI] + con[minI][i] < dist[i])
        dist[i] = dist[minI] + con[minI][i];
    nn++;
  }

  for(int i=1;i<n;i++)
    g<<dist[i]<<" ";

  f.close();
  g.close();   
}