Pagini recente » Borderou de evaluare (job #98712) | Borderou de evaluare (job #650683) | Diferente pentru problema/sir7 intre reviziile 7 si 1 | Borderou de evaluare (job #1797374) | Cod sursa (job #2455519)
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
/*
*/
#define cin fin
#define cout fout
const int MAXN=104;
int n;
int v[MAXN][MAXN];///matr drumurilor minime
void read()
{
cin>>n;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
cin>>v[i][j];
}
void RoyFloyd()
{
for(int k=1; k<=n; k++)///pct intermediar
for(int i=1; i<=n; i++)///pct de start
for(int j=1; j<=n; j++)///pct de finish
if(i!=j&&v[i][k]&&v[k][j]&&(v[i][j]>v[i][k]+v[k][j]||!v[i][j]))
v[i][j]=v[i][k]+v[k][j];
}
void print()
{
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
cout<<v[i][j]<<" ";
cout<<"\n";
}
}
void solve()
{
RoyFloyd();
print();
}
int main()
{
read();
solve();
return 0;
}