Pagini recente » Cod sursa (job #2156343) | Cod sursa (job #3155343) | Cod sursa (job #745492) | Cod sursa (job #1869373) | Cod sursa (job #1826137)
#include <fstream>
#define INF 250001
#include <vector>
using namespace std;
int N, M;
vector <vector <int> > C;
vector <int> t, d;
vector <bool> s;
int main(){
int i, j, k, dist;
ifstream fin ("dijkstra.in");
fin >> N >> M;
C.resize(N, vector <int>(N, INF));
t.resize(N);
s.resize(N);
d.resize(N);
for (k=0; k<M; k++){
fin >> i >> j >> dist;
i--; j--;
C[i][j]=C[j][i]=dist;
}
fin.close();
for (i=1; i<N; i++)
d[i]=C[i][0];
d[0]=0;
t[0]=-1;
for (k=0; k<N-1; k++){
dist=INF;
for (j=0; j<N; j++)
if (dist>d[j] && s[j]==false){
i=j;
dist=d[j];
}
s[i]=true;
for (j=0; j<N; j++)
if (d[j]>d[i]+C[i][j]){
d[j]=d[i]+C[i][j];
t[j]=i;
}
}
ofstream fout ("dijkstra.out");
for (i=1; i<N; i++)
fout << d[i] << ' ';
fout << '\n';
fout.close();
return 0;
}