Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Diferente pentru problema/iv intre reviziile 5 si 6 | Diferente pentru problema/lca intre reviziile 22 si 21 | Cod sursa (job #2919024)
#include <bits/stdc++.h>
#pragma GCC optimize ("Ofast")
using namespace std;
ifstream fin ("royfloyd.in");
ofstream fout ("royfloyd.out");
const int MAX_N = 105;
int n, rf[MAX_N][MAX_N];
int main (){
ios_base::sync_with_stdio(false);
fin.tie(nullptr), fout.tie(nullptr);
fin>>n;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
fin>>rf[i][j];
for(int k=1; k<=n; k++)
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
if(i != j)
if(rf[i][k] && rf[k][j])
if(rf[i][j] > rf[i][k] + rf[k][j] || !rf[i][j])
rf[i][j] = rf[i][k] + rf[k][j];
for(int i=1; i<=n; i++, fout<<"\n")
for(int j=1; j<=n; j++, fout<<" ")
fout<<rf[i][j];
return 0;
}