Pagini recente » Cod sursa (job #1852853) | Cod sursa (job #3030467) | Cod sursa (job #2811436) | Cod sursa (job #691197) | Cod sursa (job #2391180)
#include<fstream>
#include<vector>
using namespace std;
int d[50010], n, m;
vector <int> g[50010], cost[50010];
ifstream cin("bellmanford.in");
ofstream cout("bellmanford.out");
void read()
{
cin >> n >> m;
int x, y, z;
for (int i = 1; i <= m; i++)
{
cin >> x >> y >> z;
g[x].push_back(y);
g[y].push_back(x);
cost[x].push_back(z);
cost[y].push_back(z);
}
}
void ford()
{
int q[100010];
int pi = 1, ps = 1;
q[1] = 1;
for (int i = 2; i <= n; i++) d[i] = 10001000;
while (ps <= pi)
{
int nod = q[ps];
for (int i = 0; i < g[nod].size(); i++)
{
int fiu = g[nod][i];
if (d[nod] + cost[nod][i] < d[fiu])
d[fiu] = d[nod] + cost[nod][i], q[++pi] = fiu;
}
++ps;
}
for (int i = 2; i <= n; i++) cout << d[i] << " ";
}
int main()
{
read();
ford();
return 0;
}