Pagini recente » Cod sursa (job #573836) | Cod sursa (job #1305599) | Monitorul de evaluare | Cod sursa (job #449311) | Cod sursa (job #2017960)
#include <iostream>
#include <map>
#include <set>
#include <iterator>
#include <vector>
#include <queue>
#include <algorithm>
#include <stdio.h>
using namespace std;
#define maxi(a,b) ((a>b)? a : b)
#define FOR(i,x,n) \
for(int i = int(x);i <= int(n);i++)
int v[101][101],n;
int main(){
freopen("royfloyd.in","r",stdin);
freopen("royfloyd.out","w",stdout);
scanf("%i",&n);
FOR(i,1,n)
FOR(j,1,n)scanf("%i",&v[i][j]);
FOR(k,1,n)
FOR(i,1,n)
FOR(j,1,n)if(v[i][k] && v[k][j] && (v[i][j]>v[i][k]+v[k][j] || !v[i][j]) && i!=j)v[i][j]=v[i][k]+v[k][j];
FOR(i,1,n){
FOR(j,1,n)printf("%i ",v[i][j]);
printf("\n");}
return 0;
}