Pagini recente » Cod sursa (job #663323) | Cod sursa (job #320894) | Cod sursa (job #985789) | Cod sursa (job #2715747) | Cod sursa (job #1661896)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
const int Nmax = 100005, oo = 10000000;
int n, Use[Nmax], D[Nmax];
vector < pair <int, int> > G[Nmax];
int Min, nod;
int main()
{
f>>n;
int x,y,c;
while(f>>x>>y>>c)
{
G[x].push_back(make_pair(y,c));
}
for(int i = 1; i <= n; i++)
{
D[i] = oo;
Use[i] = 0;
}
D[1] = 0;
for(int i = 1; i <= n; i++)
{
Min = oo;
for(int j = 1; j <= n; j++)
{
if(D[j] < Min && Use[j] == 0)
{
Min = D[j];
nod = j;
}
}
Use[nod] = 1;
for(int j = 0; j <(int)G[nod].size(); j++)
{
int vecin = G[nod][j].first;
int cost = G[nod][j].second;
D[vecin] = min(D[vecin], D[nod] + cost);
}
}
for(int i = 2; i <= n; i++)
{
if(D[i] == oo) g<<0<<' ';
else g<<D[i]<<' ';
}
g<<'\n';
return 0;
}