Cod sursa(job #872206)

Utilizator RobertBBadea Corneliu Robert RobertB Data 5 februarie 2013 21:25:01
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 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 (mat[i][k]+mat[k][j]<mat[i][j] || mat[i][j]==0)
                mat[i][j] = min( mat[i][k] + mat[k][j], mat[i][j]);
            }
        }
    }
    for(int i = 0; i < N; i++) {
        for(int j = 0 ; j < N ; j++) {
            g << mat[i][j] << " ";
        }
        g << "\n";
    }
}