Cod sursa(job #266328)

Utilizator c_e_manuEmanuel Cinca c_e_manu Data 25 februarie 2009 11:47:46
Problema Algoritmul lui Dijkstra Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<fstream>
#define INF 10000

using namespace std;

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

struct muchie {
        int x,y,c;
        };
muchie v[100001];

int n,m,d[100001];

void bellmanFord()
{       int i,j;
        for(i=1;i<=n;i++) d[i]=INF;
        d[1]=0;
        for(i=1;i<n;i++)
                for(j=1;j<=m;j++)
                        if(d[v[j].x]+v[j].c<d[v[j].y])
                                d[v[j].y]=d[v[j].x]+v[j].c;
}

void write()
{       int i;
        for(i=2;i<=n;i++)
                fout<<d[i]<<' ';
}

int main()
{       int i;
        fin>>n>>m;
        for(i=1;i<=m;i++)
                fin>>v[i].x>>v[i].y>>v[i].c;
        bellmanFord();
        write();
        return 0;
}