Pagini recente » Cod sursa (job #3224102) | Cod sursa (job #2893130) | Cod sursa (job #3227003) | Cod sursa (job #769339) | Cod sursa (job #1556794)
#include <iostream>
#include <stdio.h>
#include <limits.h>
using namespace std;
int N;
int v[100 * 100];
int dist[100 * 100];
void printMatrix (const int * matrix, int v);
void initDist(const int * dist , int len);
int main(){
FILE * inFile = fopen("royfloyd.in" , "r");
FILE * outFile = fopen("royfloyd.out" , "w+");
fscanf(inFile , "%d\n", &N);
for(int i = 0 ; i < N * N ; ++i){
int line = i/N;
int col = i % N;
fscanf(inFile , "%d" , &v[line * N + col]);
}
// printMatrix (v,N);
// initDist(dist , N);
for (int k = 0 ; k < N ; ++k){
for (int i = 0 ; i < N ; ++i){
for (int j = 0 ; j < N ; ++j){
if(v[i * N + j] > v[i * N + k] + v[k * N + j])
v[i * N + j] = v[i * N + k] + v[k * N + j];
}
}
}
for(int i = 0 ; i < N * N ; ++i){
int line = i / N ;
int col = i % N;
if(col == N-1)
fprintf(outFile , "%d\n" , v[line * N + col]);
else
fprintf(outFile , "%d " , v[line * N + col]);
}
// printMatrix(v , N);
return 0 ;
}
void printMatrix(const int * matrix, int len){
for (int i = 0 ; i < len * len; i++){
int line = i/len ;
int col = i % len;
cout << matrix [line * len + col] << " ";
if(col == len - 1)
cout << "\n" ;
}
}
void initDist(const int * v , int len){
int * dist = (int *)v;
for (int i = 0 ; i < len * len ; ++i){
int line = i/len;
int col = i % len;
dist[line * len + col] = INT_MAX;
}
}