Pagini recente » Cod sursa (job #994459) | Cod sursa (job #3129290) | Cod sursa (job #1650309) | Cod sursa (job #2876108) | Cod sursa (job #3260109)
#include <fstream>
#include <vector>
#include <set>
#include <queue>
#define pii pair<int,int>
using namespace std;
ifstream cin ("royfloyd.in");
ofstream cout ("royfloyd.out");
long long int t,n,i,j,k,m,x,y,a[105][105],b,c,d[105][105],ok[300005],u,v,w,sum,l,r,mini,nr,maxi,node;
const int MOD=1e9+7;
vector<pair<int,int>>g[300005];
set<pair<int,int>>s;
priority_queue < pii , vector < pii > , greater < pii > > pq;
void royfloyd()
{
for(i=1; i<=n; i++)
for(j=1;j<=n;j++)
{
if(a[i][j]!=0)
d[i][j]=a[i][j];
else
d[i][j]=1e9;
}
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(d[i][k]!=1e9 && d[k][j]!=1e9)
d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin>>n;
for(i=1; i<=n; i++)
for(j=1;j<=n;j++)
cin>>a[i][j];
royfloyd();
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(i==j)
cout<<0<<' ';
else
cout<<d[i][j]<<' ';
}
cout<<endl;
}
return 0;
}