Cod sursa(job #966231)

Utilizator dropsdrop source drops Data 25 iunie 2013 15:31:37
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <deque>
#include <list>
#include <string>
#include <algorithm>
using namespace std;
ifstream ff("test.in");
ofstream gg("test.out");

#define inf 0xffffff
int n, dd[101][101];

void roy(){
	for(int k=1;k<=n;k++)
	for(int i=1;i<=n;i++)
	for(int j=1;j<=n;j++)
	if(i!=j && i!=k && j!=k) dd[i][j]=min(dd[i][j], dd[i][k]+dd[k][j]);
}

int main(){
	ff >> n;
	for(int i=1;i<=n;i++)
	for(int j=1;j<=n;j++){ ff >> dd[i][j]; dd[i][j]==0?dd[i][j]=inf:0; }
	roy();
	for(int i=1;i<=n;i++){
	for(int j=1;j<=n;j++) gg << (dd[i][j]==inf?0:dd[i][j]) << " "; gg << "\n"; }
	return 0;
}