Pagini recente » Cod sursa (job #305966) | Cod sursa (job #1783348) | Cod sursa (job #2297504) | Cod sursa (job #1476948) | Cod sursa (job #2448045)
#include <bits/stdc++.h>
#define INF 2000000000
using namespace std;
ifstream fin ("dijkstra.in");
ofstream fout ("dijkstra.out");
vector < pair < int, int > > a[50005];
int n;
void dijkstra()
{
vector < bool > visit(n + 1);
vector < int > d(n + 1, INF);
d[1] = 0;
for(int i = 1; i <= n; ++i) {
int v = -1;
for(int j = 1; j <= n; ++j) {
if(!visit[j] && (v == -1 || d[v] > d[j]))
v = j;
}
visit[v] = true;
for(auto x : a[v]) {
d[x.first] = min(d[x.first], x.second + d[v]);
}
}
for(int i = 2; i <= n; ++i) fout << d[i] << " ";
}
int main()
{
ios::sync_with_stdio(false);
fin.tie(0);
int m;
fin >> n >> m;
for(int i = 1; i <= m; ++i) {
int x, y, w;
fin >> x >> y >> w;
a[x].push_back(make_pair(y, w));
}
dijkstra();
return 0;
}