Pagini recente » Cod sursa (job #656029) | Cod sursa (job #40428) | Cod sursa (job #1870017) | Cod sursa (job #836884) | Cod sursa (job #1896263)
#include<bits/stdc++.h>
using namespace std;
int n, m, x, y, c;
vector<int> a[250250];
map<pair<int,int>, int>cost;
int rez[60000], viz[60000];
queue<int> q;
int main()
{
ifstream cin("dijkstra.in");
ofstream cout("dijkstra.out");
cin >> n >> m;
for (int i = 0; i < m; i++)
{
cin >> x >> y >> c;
a[x].push_back(y);
cost[make_pair(x,y)] = c;
}
int k = 1 << 30;
for (int i = 0; i <= n; i++) rez[i] = k;
rez[1] = 0;q.push(1);viz[1] = 1;
while(!q.empty())
{
int f = q.front();
for (vector<int>::iterator it = a[f].begin(); it != a[f].end(); it++)
{
rez[*it] = min(rez[*it],rez[f] + cost[make_pair(f,*it)]);
if (!viz[*it])q.push(*it),viz[*it] = 1;
}
q.pop();
}
for (int i = 2; i <= n; i++) cout << (rez[i] == 1 <<30 ? 0:rez[i]) << " ";
}