Pagini recente » Cod sursa (job #1691819) | Cod sursa (job #1523634) | Romanii medaliati la IOI | Cod sursa (job #2071500) | Cod sursa (job #1686269)
#include <bits/stdc++.h>
using namespace std;
vector<pair<int,int> > A[50005];
int d[50005], pre[50005], M[50005],n,m;
int main()
{ ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
fin>>n>>m;
int a,b,c, vf, dist;
for(int i=0; i<n; i++){
fin>>a>>b>>c;
A[a].push_back({b,c});
}
M[1]=1;
d[1]=0;
for(int i=2; i<=n; i++)
pre[i]=1;
for (int i=0; i<A[1].size(); i++){
d[A[1][i].first]=A[1][i].second;
}
for(int i=2; i<=n; i++){
dist=1005;
vf=1;
for(int j=2; j<=n; j++)
if (d[j]<dist && M[j]!=1){dist=d[j]; vf=j;}
M[vf]=1;
for (int i=0; i<A[vf].size(); i++){
if(d[A[vf][i].first]+d=A[vf][i].second;
pre[A[vf][i].first]=vf;
}
}
for(int j=2; j<=n; j++)
fout << d[j] << " ";
return 0;
}