Mai intai trebuie sa te autentifici.
Cod sursa(job #1738372)
Utilizator | Data | 6 august 2016 16:27:41 | |
---|---|---|---|
Problema | Floyd-Warshall/Roy-Floyd | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.66 kb |
#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 && i!=k && 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;
}