Pagini recente » Cod sursa (job #2424462) | Cod sursa (job #2513900) | Cod sursa (job #2658521) | Cod sursa (job #1414996) | Cod sursa (job #789106)
Cod sursa(job #789106)
#include<cstdio>
#include<cassert>
#include<algorithm>
using namespace std;
int verts, graph[105][105], ans[105][105];
void read(){
assert(freopen("royfloyd.in", "r", stdin));
scanf("%d", &verts);
for(int i = 1; i <= verts; ++i)
for(int j = 1; j <= verts; ++j){
scanf("%d", &graph[i][j]);
if(graph[i][j] == 0)
graph[i][j] = 1000000;
ans[i][j] = graph[i][j];
}
}
void solve(){
for(int i = 1; i <= verts; ++i)
for(int j = 1; j <= verts; ++j)
for(int k = 1; k <= verts; ++k)
ans[j][k] = min(ans[j][k], ans[j][i] + ans[i][k]);
}
void write(){
assert(freopen("royfloyd.out", "w", stdout));
for(int i = 1; i <= verts; ++i){
for(int j = 1; j <= verts; ++j)
if(ans[i][j] < 1000000 && i != j)
printf("%d ", ans[i][j]);
else
printf("0 ");
printf("\n");
}
}
int main(){
read();
solve();
write();
return 0;
}