Pagini recente » Cod sursa (job #486908) | Cod sursa (job #719073) | Cod sursa (job #2839209) | Cod sursa (job #249305) | Cod sursa (job #2711188)
#include <bits/stdc++.h>
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
const int INF = 1e9;
int a[101][101];
int n;
void RoyFloyd(){
for(int i = 1;i <= n;i++)
for(int j = 1;j <= n;j++)
if(a[i][j] == 0) a[i][j] = INF;
for(int k = 1;k <= n;k++)
for(int i = 1;i <= n;i++)
for(int j = 1;j <= n;j++)
if(i != j && a[i][k] < INF && a[k][j] < INF){
a[i][j] = min(a[i][j], a[i][k] + a[k][j]);
}
}
int main(){
f >> n;
for(int i = 1;i <= n;i++)
for(int j = 1;j <= n;j++)
f >> a[i][j];
RoyFloyd();
for(int i = 1;i <= n;i++, g << "\n")
for(int j = 1;j <= n;j++){
if(a[i][j] == INF) a[i][j] = 0;
g << a[i][j] << " ";
}
}