Cod sursa(job #2542311)

Utilizator ViAlexVisan Alexandru ViAlex Data 9 februarie 2020 19:55:01
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include<bits/stdc++.h>
using namespace std;

ifstream in("royfloyd.in");
ofstream out("royfloyd.out");

#define INF 99999999

int node_count;
int distances[100][100];


void read()
{
	in>>node_count;
	for(int i=0; i<node_count; i++)
	{

		for(int k=0; k<node_count; k++)
		{
			in>>distances[i][k];
			if(distances[i][k]==0 && i!=k){
				distances[i][k]=INF;
			}
		}
	}
}

void royfloyd(){
	int split;
	for(int i=0;i<node_count;i++){
		for(int j=0;j<node_count;j++){
			for(int k=0;k<node_count;k++){
				split=distances[j][i]+distances[i][k];
				if(distances[j][k]>split)
					distances[j][k]=split;
			}

		}
	}



}


int main(){
	read();
	royfloyd();
	for(int i=0; i<node_count; i++)
	{

		for(int k=0; k<node_count; k++)
		{
			out<<distances[i][k]<<" ";
		}
		out<<'\n';
	}
	return 0;

}