Pagini recente » Cod sursa (job #1597323) | Cod sursa (job #707105) | Cod sursa (job #1224551) | Cod sursa (job #1046096) | Cod sursa (job #1456958)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("rf.in");
ofstream fout("rf.out");
int N,D[260][260],M[260][260],i,j,k;
int main(){
fin >> N;
for(i = 1;i<=N;i++)
for(j = 1;j<=N;j++){
fin >> D[i][j];
if(D[i][j]) M[i][j] = 1;
}
for(k = 1;k<=N;k++)
for(i = 1;i<=N;i++)
for(j = 1;j<=N;j++){
if(D[i][k] && D[k][j] && (D[i][j] >= D[i][k] + D[k][j] || !D[i][j]) && i!=j){
D[i][j] = D[i][k] + D[k][j],
M[i][j] = max(M[i][k] + M[k][j],M[i][j]);
}
}
for(i = 1;i<=N;i++){
for(j = 1;j<=N;j++)
fout << D[i][j] <<' ';
fout << '\n';
}
for(i = 1;i<=N;i++){
for(j = 1;j<=N;j++)
fout << M[i][j] <<' ';
fout << '\n';
}
return 0;
}