Pagini recente » Cod sursa (job #2094339) | Statistici Sipos Raoul Sebastian (SebiRaul) | Cod sursa (job #937549) | Cod sursa (job #838232) | Cod sursa (job #2420614)
#include <fstream>
#include <vector>
#include <deque>
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
const int NMAX = 50005;
const int inf = 1e9;
struct muchie{
int node, cost;
};
deque <int> q;
vector <muchie> v[NMAX];
int n,m,dist[NMAX];
void dijkstra(){
int nod,i,sz;
q.push_back(1);
for(i = 2 ; i <= n ; i++)
dist[i] = inf;
while(!q.empty()){
nod = q.front();
q.pop_front();
sz = v[nod].size();
for(i = 0 ; i < sz ; i++)
if(dist[v[nod][i].node] > dist[nod] + v[nod][i].cost){
dist[v[nod][i].node] = dist[nod] + v[nod][i].cost;
q.push_back(v[nod][i].node);
}
}
}
int main(){
int i,a,b,c;
muchie x;
f >> n >> m;
for(i = 1 ; i <= m ; i++){
f >> a >> b >> c;
x.node = b;
x.cost = c;
v[a].push_back(x);
}
dijkstra();
for(i = 2 ; i <= n ; i++)
g << dist[i] << " ";
return 0;
}