Pagini recente » Cod sursa (job #404942) | Cod sursa (job #2441233) | Cod sursa (job #2196788) | Cod sursa (job #2123049) | Cod sursa (job #1458224)
#include <stdio.h>
#include <vector>
#include <iostream>
#include <fstream>
#define MAX 100
using namespace std;
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
int N;
vector <vector<int> > tpl;
void read(){
in >> N;
tpl.resize(N+1, vector<int>(N+1));
int x;
for(int i = 1; i <= N; ++i){
for(int j = 1; j <= N; ++j){
in >> x;
tpl[i][j] = x;
}
}
}
void RoyFloyd(){
for(int k = 1; k <= N; ++k){
for(int i = 1; i <= N; ++i){
for(int j = 1; j <=N; ++j){
if(i != j && tpl[i][k] != 0 && tpl[k][j] != 0){
int dist = tpl[i][k] + tpl[k][j];
if(tpl[i][j] > dist || tpl[i][j] == 0)
tpl[i][j] = dist;
}
}
}
}
}
void write(){
for(int i = 1; i <= N; ++i){
for(int j = 1; j <= N; ++j){
out << tpl[i][j] << " ";
}
out << "\n";
}
}
int main(){
read();
RoyFloyd();
write();
}