Pagini recente » Cod sursa (job #3226926) | Cod sursa (job #2434102) | Cod sursa (job #135338) | Cod sursa (job #2511623) | Cod sursa (job #2132299)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int n,a[111][111],c[111][111];
void citire() {
f>>n;
for (int i=1;i<=n;i++) {
for (int j=1;j<=n;j++) {
f>>a[i][j];
}
}
}
void rez() {
for (int i=1;i<=n;i++) {
for (int j=1;j<=n;j++) {
c[i][j]=a[i][j];
}
}
for (int k=1;k<=n;k++) {
for (int i=1;i<=n;i++) {
for (int j=1;j<=n;j++) {
if ( (a[i][k]!=0 && a[k][j]!=0) || c[i][j]==0 ) {
c[i][j]=min(c[i][j],c[i][k]+c[k][j]);
}
//if (a[i][k]!=0 && a[k][j]!=0 && (a[i][j] > a[i][k] + a[k][j] || a[i][j]==0) && i != j) a[i][j] = a[i][k] + a[k][j];
}
}
}
for (int i=1;i<=n;i++) {
for (int j=1;j<=n;j++) {
g<<c[i][j]<<" ";
}
g<<"\n";
}
}
int main() {
citire();
rez();
return 0;
}