Pagini recente » Cod sursa (job #2662091) | Cod sursa (job #1009227) | Cod sursa (job #2358429) | Cod sursa (job #2036547) | Cod sursa (job #1704963)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
const int INF = 1234567;
std::ifstream f("royfloyd.in");
std::ofstream g("royfloyd.out");
int N;
int matrix[101][101];
void read(){
f >> N;
for(int i = 1 ; i <= N ; ++i){
for(int j = 1 ; j <= N ; ++j){
f >> matrix[i][j];
if(matrix[i][j] == 0 && i != j){
matrix[i][j] = INF;
}
}
}
}
void floyd(){
for(int k = 1; k <= N ; ++k){
for(int i = 1; i <= N ; ++i){
for(int j =1 ; j <= N ; ++j){
if(matrix[i][k] != 0 && matrix[k][j] != 0 && i != j){
matrix[i][j] = min(matrix[i][k] + matrix[k][j],matrix[i][j]);
}
}
}
}
}
void print(){
for(int i = 1 ; i <= N ; ++i){
for(int j = 1 ; j <= N ; ++j){
g << matrix[i][j] << " ";
}
g << "\n";
}
}
int main(){
read();
floyd();
print();
return 0;
}