Cod sursa(job #145668)

Utilizator moga_florianFlorian MOGA moga_florian Data 29 februarie 2008 09:47:05
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<stdio.h>
#define Nmax 105

int A[Nmax][Nmax];

int main(){

  FILE *fin = fopen("royfloyd.in","r"), 
       *fout = fopen("royfloyd.out","w");
       
  int N;
  fscanf(fin,"%d",&N);
  for(int i=1;i<=N;i++)
    for(int j=1;j<=N;j++)
      fscanf(fin,"%d",&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] + A[k][j] < A[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++)
      fprintf(fout,"%d ",A[i][j]);
    fprintf(fout,"\n");
  }  
  
  fclose(fin);
  fclose(fout);
  return 0;
}