Pagini recente » Cod sursa (job #394054) | Cod sursa (job #2885730) | Cod sursa (job #324040) | Cod sursa (job #2889045) | Cod sursa (job #877912)
Cod sursa(job #877912)
#include <iostream>
#include <fstream>
#define infinit 0x777f7f7f
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
struct list_muc {
int s;
int f;
int c;
};
int N,M,x,y,cost;
int dist[50001];
list_muc arc[250001];
bool ok = 1;
int main()
{
f >> N >> M;
for(int i = 1; i <= N; i++) {
dist[i] = infinit;
}
for(int i = 0; i < M; i++) {
f >> x >> y >> cost;
arc[i].s = x;
arc[i].f = y;
arc[i].c = cost;
if(x == 1) {
dist[y] = cost;
}
}
while(ok) {
ok = 0;
for(int i = 1; i <= M; i++) {
if(dist[arc[i].f] > dist[arc[i].s] + arc[i].c) {
dist[arc[i].f] = dist[arc[i].s] + arc[i].c;
ok = 1;
}
}
}
for(int i = 2; i <= N; i++) {
if(dist[i] == infinit) {
g << 0 << " ";
} else {
g << dist[i] << " ";
}
}
}