Pagini recente » Cod sursa (job #814502) | Cod sursa (job #144290) | Cod sursa (job #281808) | Cod sursa (job #2203334) | Cod sursa (job #706192)
Cod sursa(job #706192)
#include <cstdio>
#include <vector>
#define maxn 50001
using namespace std;
struct nodulet {long d; long lg;} arc;
vector < nodulet > A[maxn];
long x, i, N, K, C[maxn];
bool viz[maxn];
void BFS(long nod) {
viz[nod] = true;
for (long i = 0; i < A[nod].size(); ++i) {
if (C[ A[nod][i].d ] == 0 || C[ A[nod][i].d ] > C[nod] + A[nod][i].lg) {
C[ A[nod][i].d ] = C[nod] + A[nod][i].lg;
BFS(A[nod][i].d);
}
}
}
int main() {
freopen("dijkstra.in","r",stdin);
freopen("dijkstra.out","w",stdout);
scanf("%ld %ld", &N, &K);
for (i = 0; i < K; ++i) {
scanf("%ld %ld %ld", &x, &arc.d, &arc.lg);
A[x].push_back(arc);
}
C[1] = 0;
BFS(1);
for (i = 2; i <= N; ++i) {
printf("%ld ", C[i]);
}
printf("\n");
return 0;
}