Pagini recente » Cod sursa (job #17536) | Cod sursa (job #205190) | Cod sursa (job #2448102) | Cod sursa (job #88675) | Cod sursa (job #2812913)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
struct str
{
int cost;
int nod;
};
constexpr int NMAX = 5e4 + 3, INF = 1e9;
int d[NMAX], n, m, a, b, c;
bool sel[NMAX];
vector <str> G[NMAX];
int main()
{
fin >> n >> m;
for(int i = 1; i <= m; i++) {
fin >> a >> b >> c;
G[a].push_back({c, b});
}
int dmin, poz;
for(int i = 1; i <= n; i++)
d[i] = INF;
d[1] = 0;
for(int i = 1; i <= n; i++)
{
dmin = INF;
for(int j = 1; j <= n; j++)
if(d[j] < dmin && !sel[j])
dmin = d[j], poz = j;
sel[poz] = true;
for(auto it: G[poz]) {
if(!sel[it.nod] && dmin + it.cost < d[it.nod])
d[it.nod] = dmin + it.cost;
}
}
for(int i = 2; i <= n; i++) {
if(d[i] != INF)
fout << d[i] << " ";
else fout << "0 ";
}
fout << '\n';
return 0;
}