Cod sursa(job #596371)

Utilizator memaxMaxim Smith memax Data 16 iunie 2011 23:27:51
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <fstream>
using namespace std;

main(){
 ifstream ir; ir.open("royfloyd.in");
 ofstream ur; ur.open("royfloyd.out");
 int t, a[100][100];
 ir>>t; t-=1;
 for (int i=0; i<=t; i++){
  for (int j=0; j<=t; j++){
    ir>>a[i][j]; 
    if(a[i][j]==0 && i!=j){
     a[i][j]=3000; }; }; };
 for(int k=0; k<=t; k++){
  for(int i=0; i<=t; i++){
   for(int j=0; j<=t; j++){
    if(a[i][j]>a[i][k]+a[k][j]){
      a[i][j]=a[i][k]+a[k][j];};};};};
 for (int i=0; i<=t; i++){
  for (int j=0; j<=t; j++){
    if(a[i][j]>=3000){ ur<<"0"<<" ";};  
    ur<<a[i][j]<<" ";};
  ur<<"\n";};
 ir.close();
 ur.close();
};