Pagini recente » Cod sursa (job #2382995) | Monitorul de evaluare | Cod sursa (job #989477) | Cod sursa (job #2227261) | Cod sursa (job #2018747)
#include<bits/stdc++.h>
using namespace std;
#define lli long long int
const lli mod=1e9+7;
const lli pINF=LLONG_MAX;
const lli nINF=-LLONG_MAX;
void fast() {std::ios::sync_with_stdio(false);cin.tie(NULL);}
lli power(lli a,lli b){lli ans=1;while(b!=0){ if(b%2==1){ans*=a;}b/=2;a*=a;} return ans;}
lli invmod(lli a) {return pow(a,mod-2);}
#define vi vector<int>
#define vlli vector<lli>
#define pb push_back
#define mp make_pair
#define F first
#define S second
#define si(n) scanf("%d",&n)
#define sli(n) scanf("%lld",&n)
#define printi(n) printf("%d\n",n)
#define printli(n) printf("%lld\n",n)
#define all(v) v.begin(),v.end()
#define forn(i,n) for(int i=0;i<n;i++)
void print(int a[],int n){for(int i=0;i<n;i++) cout<<a[i]<<" ";}
int dist[105][105];
int a[105][105];
int main()
{
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int n;
fin>>n;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
fin>>a[i][j];
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
dist[i][j]=a[i][j];
if(!dist[i][j]) dist[i][j]=INT_MAX;
}
}
for(int k=0;k<n;k++){ // intermediate vertex
for(int i=0;i<n;i++){ // source vertex
for(int j=0;j<n;j++){ //destination vertex
if(dist[i][k]+dist[k][j]<dist[i][j]){
dist[i][j]=dist[i][k]+dist[k][j];
}
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
fout<<dist[i][j]<<' ';
}
fout<<'\n';
}
return 0;
}