Pagini recente » Cod sursa (job #630624) | Statistici Razvan Alexandru Sandu (SKREFI) | Cod sursa (job #559638) | Cod sursa (job #1510171) | Cod sursa (job #1993358)
#include <fstream>
#include <vector>
#include <deque>
#define INF 2000000000
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
int i, n, m, a, b, cost, drum_curent, nodC, nod, drum_minim[50002], vizitat[50002];
struct graf
{
int nod, cost;
}aux;
vector <graf> v[50002];
deque <int> c;
int main()
{
f>>n>>m;
for(i = 1;i <= m; ++ i)
{
f>>a>>b>>cost;
aux.nod = b;
aux.cost = cost;
v[a].push_back(aux);
}
for(i = 2;i <= n; ++ i)
drum_minim[i] = INF;
c.push_back(1);
vizitat[1] = 1;
while(!c.empty())
{
nod = c.front();
for(i = 0;i < v[nod].size(); ++ i)
{
drum_curent = drum_minim[nod] + v[nod][i].cost;
nodC = v[nod][i].nod;
if(drum_curent < drum_minim[nodC])
{
drum_minim[nodC] = drum_curent;
c.push_back(nodC);
}
}
c.pop_front();
}
for(i = 2;i <= n; ++ i)
g<<drum_minim[i]<<" ";
return 0;
}