Cod sursa(job #861960)

Utilizator mucalmicmarcel almic mucalmic Data 22 ianuarie 2013 01:05:46
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 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]);
		if (dmin[i][j] == 0)
			dmin[i][j] = 1002;
			
	}
		
for (k = 0; k < n; k++)
for (i = 0; i < n; i++)
	for (j = 0; j < n; j++)
		 {
			if (i!=j)
				if (dmin[i][j] > (dmin[i][k] + dmin[k][j])) {
					dmin[i][j] = dmin[i][k] + dmin[k][j];
			//		kmin[i][j] = k;
					}
					

		}
		

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

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

return 0;

}