Pagini recente » Cod sursa (job #807286) | Cod sursa (job #39057) | Cod sursa (job #1955756) | Cod sursa (job #625714) | Cod sursa (job #669101)
Cod sursa(job #669101)
#include<fstream>
using namespace std;
int a[260][260],b[260][260],n;
void readdata(){
ifstream fin("rf.in");
fin>>n;
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
{ fin>>a[i][j]; if(a[i][j])b[i][j]++; }
fin.close();
}
void royfloyd(){
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][k] && a[k][j] && (a[i][j] >= a[i][k] + a[k][j] || !a[i][j]) && i!=j){ a[i][j]=a[i][k]+a[k][j]; if(a[i][j] == a[i][k] + a[k][j])b[i][j]++; }
}
void writedata(){
ofstream fout("rf.out");
for(int i=1;i<=n;++i){
for(int j=1;j<=n;++j)
fout<<a[i][j]<<' '; fout<<'\n'; }
for(int i=1;i<=n;++i){
for(int j=1;j<=n;++j)
fout<<b[i][j]<<' '; fout<<'\n'; }
fout.close();
}
int main(void){
ofstream fout("royfloyd.out");
readdata();
royfloyd();
writedata();
return 0;
}