Pagini recente » Cod sursa (job #2788633) | Cod sursa (job #697207) | Cod sursa (job #2188213) | Cod sursa (job #887759) | Cod sursa (job #1022010)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
void solve(int** matrix, int N){
for(int k = 1; k <= N; k++){
for(int i = 1; i <= N; i++){
for(int j = 1; j <= N; j++){
int sum = matrix[i][k] + matrix[k][j];
if (matrix[i][k] != 0 && matrix[k][j] != 0 && i != j && (sum < matrix[i][j] || matrix[i][j] == 0)){
matrix[i][j] = sum;
}
}
}
}
}
int main() {
int** matrix;
int N, i, j;
f >> N;
matrix = new int*[N+1];
for (i = 1; i <= N; i++){
matrix[i] = new int[N+1];
for(j = 1; j <= N; j++){
f >> matrix[i][j];
}
}
solve(matrix, N);
for (i = 1; i <= N; i++){
for(j = 1; j <= N; j++){
g << matrix[i][j] << " ";
}
g << '\n';
}
for (i = 1; i <= N; i++)
delete [] matrix[i];
delete [] matrix;
f.close();
g.close();
return 0;
}