Pagini recente » Cod sursa (job #2885832) | Cod sursa (job #3210261) | Cod sursa (job #230950) | Cod sursa (job #605233) | Cod sursa (job #3157395)
#include <iostream>
#include <vector>
using namespace std;
typedef long long ll;
vector<vector<ll>> RoydFloyd(vector<vector<ll>> &adi)
{
vector<vector<ll>> dist=adi;
ll i,j,k;
for(i=0;i<dist.size();i++)
for(j=0;j<dist.size();j++)
if(dist[i][j]==0)dist[i][j]=1e8;
for(k=0;k<dist.size();k++)
for(i=0;i<dist.size();i++)
for(j=0;j<dist.size();j++)
dist[i][j]=min(dist[i][j],dist[i][k]+dist[k][j]);
return dist;
}
int main()
{
freopen("royfloyd.in","r",stdin);
freopen("royfloyd.out","w",stdout);
ll n,i,j;
cin>>n;
vector<vector<ll>> adi(n+1,vector<ll>(n+1));
for(i=0;i<n;i++)
for(j=0;j<n;j++)cin>>adi[i][j];
adi=RoydFloyd(adi);
for(i=0;i<n;i++)adi[i][i]=0;
for(i=0;i<n*n;i++)cout<<adi[i/n][i%n]<<((i+1)%n?' ':'\n');
return 0;
}