Pagini recente » Cod sursa (job #92763) | Cod sursa (job #1573461) | Cod sursa (job #626203) | Cod sursa (job #3254336) | Cod sursa (job #2924122)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("royfloyd.in");
ofstream fout ("royfloyd.out");
const int MAXN=300;
const int INF=1e9;
int n,dp[MAXN][MAXN][2];
vector <pair <int,int>> g[MAXN];
int main()
{
fin >>n;
for (int i=1;i<=n;++i){
for (int j=1;j<=n;++j){
int x;
fin >>x;
g[i].push_back ({x,j});
if (x==0)
dp[i][j][0]=INF;
else
dp[i][j][0]=x;
}
}
for (int k=1;k<=n;++k){
for (int i=1;i<=n;++i){
for (int j=1;j<=n;++j){
dp[i][j][k%2]=min (dp[i][j][1-(k%2)],dp[i][k][1-(k%2)]+dp[k][j][1-(k%2)]);
}
}
}
for (int i=1;i<=n;++i){
for (int j=1;j<=n;++j){
if (dp[i][j][n%2]==INF or i==j)
fout <<0<<' ';
else
fout <<dp[i][j][n%2]<<' ';
}
fout <<'\n';
}
fin.close ();
fout.close ();
return 0;
}