Pagini recente » Cod sursa (job #701417) | Cod sursa (job #592471) | Cod sursa (job #804670) | Cod sursa (job #1371438) | Cod sursa (job #2726175)
#include <iostream>
#include <cstdio>
using namespace std;
int dp[101][101], n;
void royfloyd() {
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(dp[i][j]>dp[i][k]+dp[k][j])
dp[i][j]=dp[i][k]+dp[k][j];
}
int main() {
FILE *fin, *fout;
int i, j;
fin=fopen("royfloyd.in","r");
fout=fopen("royfloyd.out","w");
fscanf(fin, "%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) {
fscanf(fin, "%d",&dp[i][j]);
if(dp[i][j]==0 && i!=j)
dp[i][j]=1000000000;
}
royfloyd();
for(i=1;i<=n;i++) {
for(j=1;j<=n;j++) {
if(dp[i][j]==1000000000)
fprintf(fout, "0 ");
else
fprintf(fout, "%d ",dp[i][j]);
}
fprintf(fout, "\n");
}
fclose( fin );
fclose( fout );
return 0;
}