Pagini recente » Cod sursa (job #756891) | Cod sursa (job #308944) | Welcome! :D | Monitorul de evaluare | Cod sursa (job #1738375)
#include <fstream>
#include <climits>
using namespace std;
#define N 100
int matrix[N][N];
int n;
int min(int a,int b) {
return (a<=b?a:b);
}
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
void RoyFloyd() {
for (int k=0;k<n;k++) {
for (int i=0;i<n;i++) {
for (int j=0;j<n;j++) {
if (i!=j && matrix[i][k] && matrix[k][j] ||
(matrix[i][j]>matrix[i][k]+matrix[k][j])) {
matrix[i][j]=matrix[i][k]+matrix[k][j];
}
}
}
}
}
int main() {
in>>n;
for (int i=0;i<n;i++) {
for (int j=0;j<n;j++) {
in>>matrix[i][j];
}
}
RoyFloyd();
for (int i=0;i<n;i++) {
for (int j=0;j<n;j++) {
out<<matrix[i][j]<<" ";
}
out<<"\n";
}
return 0;
}