Pagini recente » Cod sursa (job #2116887) | Cod sursa (job #2292691) | Cod sursa (job #1736149) | Cod sursa (job #111183) | Cod sursa (job #2711184)
#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(a[i][j] < 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] << " ";
}
}