Pagini recente » Istoria paginii runda/1_martie_simulare_oji_2024_clasele_11_12/clasament | Cod sursa (job #343478) | Cod sursa (job #2967019) | Cod sursa (job #1370984) | Cod sursa (job #3258216)
#include <fstream>
#define NMAX 2002
#define LMAX 1000000002
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]=LMAX;
for(int j=1; j<=N; j++)
{
A[i][j]=LMAX;
}
}
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=LMAX;
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++)
{
if(cost[i]==LMAX)
{
cost[i]=0;
}
fout<< cost[i] << " ";
}
fout<< "\n";
return 0;
}