Pagini recente » Cod sursa (job #1347974) | Cod sursa (job #2790508) | Cod sursa (job #2580918) | Cod sursa (job #2357456) | Cod sursa (job #3258207)
#include <fstream>
#define NMAX 2002
using namespace std;
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
int N,M,cost[NMAX],viz[NMAX],A[NMAX][NMAX];
int main()
{
int a,b,c;
fin>>N>>M;
for(int i=1; i<=N; i++)
{
cost[i]=1000000002;
for(int j=1; j<=N; j++)
{
A[i][j]=1000000002;
}
}
for(int i=1; i<=M; i++)
{
fin>>a>>b>>c;
A[a][b]=A[b][a]=c;
}
cost[1]=0;
for(int i=1; i<=N; i++)
{
int vmin,nod;
nod=0;
vmin=1000000002;
for(int j=1; j<=N; j++)
{
if(!viz[j] && cost[j]<vmin)
{
vmin=cost[j];
nod=j;
}
}
viz[nod]=1;
for(int j=1; j<=N; j++)
{
if(!viz[j] && cost[nod]+A[nod][j]<cost[j])
{
cost[j]=cost[nod]+A[nod][j];
}
}
}
for(int i=2; i<=N; i++)
{
fout<< cost[i] << " ";
}
fout<< "\n";
return 0;
}