Pagini recente » Cod sursa (job #680449) | Cod sursa (job #612686) | Cod sursa (job #2198663) | Cod sursa (job #2532654) | Cod sursa (job #1704957)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
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];
}
}
}
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;
}