Cod sursa(job #1686269)

Utilizator Evghenii_BeriozchinEvghenii Beriozchin Evghenii_Beriozchin Data 12 aprilie 2016 10:07:51
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb

#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;
}