Cod sursa(job #2575159)

Utilizator razadecurcubeu26Comsa Dorin razadecurcubeu26 Data 6 martie 2020 11:55:03
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <fstream>
using namespace std;
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
int n = 9, m;
int	G[10001][10001];

int dis[100], viz[100];
int IMAX = 9999999999;

int dismin() {
	int min=IMAX, mink;

	for (int i = 1; i <= n; i++) {
		if (!viz[i] && dis[i] <= min) {
			min = dis[i];
			mink = i;
		}
	}
	return mink;
}

void dijkstra(int src) {
	
	for (int i = 1; i <= n; i++)
		dis[i] = IMAX;
	dis[src] = 0;

	

	for (int i = 1; i <= n; i++) {

		int next = dismin();
		viz[next] = 1;

		for (int j = 1; j <= n; j++) {
			if (!viz[j] && G[next][j] && dis[next] != IMAX && dis[j] > dis[next] + G[next][j])
				dis[j] = dis[next] + G[next][j];

		}

	}


}

int main() {

	fin >> n;
	fin >> m;
	int x, y, z;
	for (int i = 1; i <= m; i++) {
		fin >> x >> y >> z;
		G[x][y] = z;
		G[y][x] = z;
	}
	dijkstra(1);

	for (int i = 2; i <= n; i++)
		fout << dis[i] << " ";



}