Cod sursa(job #1551737)

Utilizator Vali_DeaconuVali Deaconu Vali_Deaconu Data 16 decembrie 2015 15:15:04
Problema Algoritmul lui Dijkstra Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include<fstream>
using namespace std;
const int prcMax =  23005;
typedef int matrice[prcMax][prcMax];
matrice Dist;
int n, m;
void init() {
    ifstream fin("dijkstra.in");
    int x, y, L;
    fin >> n >> m;
    for (int i=1; i<=m; ++i) {
        fin >> x >> y >> L;
        Dist[x][y] = Dist[y][x] = L;
    }
    fin.close();
}
void dijkstra() {
    for (int nod=2; nod<=n; ++nod)
        for (int i=2; i<=n; ++i)
            if (i != nod && Dist[nod][i] > 0)
                if (Dist[1][i] > Dist[1][nod] + Dist[nod][i] || !Dist[1][i])
                    Dist[1][i] = Dist[1][nod] + Dist[nod][i];
}
void finish() {
    ofstream fout("dijkstra.out");
    for (int i=2; i<=n; ++i)
        fout << Dist[1][i] << " ";
    fout.close();
}
int main() {
    init();
    dijkstra();
    finish();
    return 0;
}