Cod sursa(job #872209)

Utilizator RobertBBadea Corneliu Robert RobertB Data 5 februarie 2013 21:26:50
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>
 
using namespace std;
 
int mat[101][101];
int N;
 
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
 
int main()
{
    f >> N;
    for(int i = 0; i < N; i++) {
        for(int j = 0 ; j < N ; j++) {
            f >> mat[i][j];
        }
    }
    for(int k = 0; k < N; k++) {
        for(int i = 0 ; i < N ; i++) {
            for(int j = 0; j < N; j++) {
				if (i!=j && mat[i][k]!=0 && mat[k][j]!=0) {
					if(mat[i][j] == 0 || mat[i][j] > mat[i][k] + mat[k][j]) {
						mat[i][j] = mat[i][k] + mat[k][j];
					}
				}
            }
        }
    }
    for(int i = 0; i < N; i++) {
        for(int j = 0 ; j < N ; j++) {
            g << mat[i][j] << " ";
        }
        g << "\n";
    }
}