Pagini recente » Cod sursa (job #2057661) | Cod sursa (job #2458449) | Cod sursa (job #2758092) | Cod sursa (job #1176362) | Cod sursa (job #2049718)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream in("dijkstra.in");
ofstream out("dijkstra.out");
const int N=50001;
const int oo=200000000;
vector<pair <int,int > >a[N];
int n,m,s[N],d[N];
void citire()
{
int i,x,y,z;
in>>n>>m;
for(i=1; i<=m; i++)
{
in>>x>>y>>z;
a[x].push_back(make_pair(y,z));
}
in.close();
}
void dijkstra()
{
int i,j,nod,cost;
for(i=2; i<=n; i++)
d[i]=oo;
for(i=1; i<n; i++)
{
int minim=oo;
for(j=1; j<=n; j++)
if(d[j]<minim && s[j]==0)
{
minim=d[j];
nod=j;
}
s[nod]=1;
for(j=0; j<(int)a[nod].size(); j++)
{
int vecin=a[nod][j].first;
cost=a[nod][j].second;
d[vecin]=min(d[vecin],d[nod]+cost);
}
}
}
int main()
{
citire();
dijkstra();
for(int i=2; i<=n; i++)
{
if(d[i]==oo)
d[i]=0;
out<<d[i]<<" ";
}
return 0;
}