Pagini recente » Cod sursa (job #1490162) | Cod sursa (job #2872474) | Cod sursa (job #3142282) | Cod sursa (job #3218195) | Cod sursa (job #2491558)
#include <bits/stdc++.h>
#define MOD 1999999973
#define ull unsigned long long
#define FOR(i, a, b) for(i = a; i <= b; i++)
using namespace std;
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
vector<pair<int,int>> G[50005];
int viz[50005];
int val[50005];
int n;
const int inf = INT_MAX;
int minim(){
int solval = inf;
int sol,i;
FOR(i,1,n){
if(solval > val[i] && viz[i] == 0){
solval = val[i];
sol = i;
}
}
return sol;
}
int main()
{
int m,i,a1,a2,c1,j,minslct,vecin,costv;
fin>>n>>m;
FOR(i,1,m){
fin>>a1>>a2>>c1;
G[a1].push_back(make_pair(a2,c1));
}
FOR(i,2,n){
val[i] = inf;
}
FOR(i,1,n){
minslct = minim();
viz[minslct] = 1;
for(j = 0; j < G[minslct].size();j++){
vecin = G[minslct][j].first;
costv = G[minslct][j].second;
if(val[vecin] > val[minslct] + costv){
val[vecin] = val[minslct] + costv;
}
}
}
for(i = 2; i <= n; i++){
if(val[i] == inf)
fout<<"0 ";
else
fout<<val[i]<<' ';
}
return 0;
}