Pagini recente » Cod sursa (job #3225848) | Cod sursa (job #2724549) | Cod sursa (job #761617) | Cod sursa (job #2712087) | Cod sursa (job #2274592)
#include<stdio.h>
#include<stdlib.h>
#include<vector>
#include <queue>
using namespace std;
int A[100][100];
int D[100][100];
int N;
#define INF 100000
void drumuriminime(){
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
if(A[i][j]==0 && i!=j)
D[i][j]=INF;
else
D[i][j]=A[i][j];
}
}
for(int k=0;k<N;k++){
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
if(D[i][j] > (D[i][k] + D[k][j]))
D[i][j] = D[i][k] + D[k][j];
}
}
}
}
int main(){
FILE* f= fopen("royfloyd.in","rt");
FILE* g= fopen("royfloyd.out","wt");
fscanf(f,"%d",&N);
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
fscanf(f,"%d", &A[i][j]);
}
}
drumuriminime();
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
fprintf(g,"%d ",D[i][j]);
}
fprintf(g,"\n");
}
fclose(g);
fclose(f);
return 0;
}