Pagini recente » Rating dir ing (dirIng) | Atasamentele paginii Profil dirIng | Cod sursa (job #3359952) | Atasamentele paginii Profil waifuuu | Cod sursa (job #3359983)
#include <fstream>
#pragma GCC optimize("O3,unroll-loops")
#include <algorithm>
#include <cstdlib>
#include <cstring>
#include <climits>
#include <iomanip>
#include <numeric>
#include <bitset>
#include <string>
#include <vector>
#include <cmath>
#include <queue>
#include <deque>
#include <stack>
#include <list>
#include <map>
#include <set>
#define int long long
//#define int short
using namespace std;
ifstream cin("royfloyd.in");
ofstream cout("royfloyd.out");
const int nmax = 100;
const int inf = 1e9;
int n, rf[nmax + 5][nmax + 5];
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cin>>n;
for (int i = 1; i <= n; i++){
for (int j = 1; j <= n; j++){
cin>>rf[i][j];
if (!rf[i][j] && i != j){
rf[i][j] = inf;
}
}
}
for (int k = 1; k <= n; k++){
for (int i = 1; i <= n; i++){
for (int j = 1; j <= n; j++){
if (i == j || j == k || i == k){
continue;
}
rf[i][j] = min(rf[i][j], rf[i][k] + rf[k][j]);
}
}
}
for (int i = 1; i <= n; i++){
for (int j = 1; j <= n; j++){
if (rf[i][j] == inf){
cout<<0<<" ";
continue;
}
cout<<rf[i][j]<<" ";
}
cout<<"\n";
}
}