Cod sursa(job #281831)
#include<fstream>
#define MAX 100
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int n,a[MAX][MAX];
void read(){
int i,j;
fin>>n;
for(i = 1; i <= n; i++){
for(j = 1; j <= n; j++)
fin>>a[i][j];
}
fin.close();
}
void rf(){
int i,j,k;
for(k = 1; k <= n; k++)
for(i = 1; i <= n; i++)
for(j = 1; j <= n; j++)
if((a[i][j] > a[i][k]+a[k][j] || !a[i][j] && i!= j) &&!a[i][k] && !a[k][j])
a[k][j] = a[i][j] + a[k][i];
}
int main(){
int i,j;
read();
rf();
for(i = 1; i <= n; i++){
for(j = 1; j <= n; j++)
fout<<a[i][j]<<" ";
fout<<"\n";
}
fout.close();
return 0;
}