Cod sursa(job #861936)

Utilizator mucalmicmarcel almic mucalmic Data 22 ianuarie 2013 00:24:31
Problema Floyd-Warshall/Roy-Floyd Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <map>
#include <vector>
#include <algorithm>

using namespace std;


int main() {

int n, i, j, k;

int dmin[101][101];

FILE *fin, *fout;

fin = fopen ("royfloyd.in", "r");

fscanf (fin, "%d", &n);

for (i = 0; i < n; i++)
	for (j = 0; j < n; j++) {
		fscanf (fin, "%d", &dmin[i][j]);
		//dmin[i][j] = mat[i][j];
	}
		
		
for (i = 0; i < n; i++)
	for (j = 0; j < n; j++)
		for (k = 0; k < n; k++) {
			if (i!=j)
				if (dmin[i][j] != 0 && dmin[i][k] !=0 && dmin[k][j] && dmin[i][j] > (dmin[i][k] + dmin[k][j]))
					dmin[i][j] = dmin[i][k] + dmin[k][j];;

		}
		
fout = fopen ("royfloyd.out", "w");

for (i = 0; i < n; i++) {
	for (j = 0; j < n; j++) {
		fprintf (fout, "%d ", dmin[i][j]);
	}
	fprintf (fout, "\n");
}

return 0;

}