Pagini recente » Cod sursa (job #2762221) | Cod sursa (job #886785) | Cod sursa (job #592) | Cod sursa (job #661098) | Cod sursa (job #1896241)
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n, m, x, y, c;
vector<ll> a[250100];
map<pair<int,int>, ll>cost;
ll rez[60000], bf[250250];
bool viz[60000];
void bfs()
{
bf[1] = 1;
int st = 1, dr = 1;
while(st <= dr)
{
for (vector<ll>::iterator it = a[bf[st]].begin(); it != a[bf[st]].end(); it++)
{
rez[*it] = min(rez[*it],rez[bf[st]] + cost[make_pair(bf[st],*it)]);
dr++;
bf[dr] = *it;
}
st++;
}
}
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;
}
for (int i = 0; i <= n; i++) rez[i] = 1LL << 60;
rez[1] = 0;
bfs();
for (int i = 2; i <= n; i++) cout << rez[i] << " ";
}