Cod sursa(job #2975863)

Utilizator dumitrache12Dumitrache Iulian dumitrache12 Data 7 februarie 2023 19:12:41
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include<bits/stdc++.h>
using namespace std;

const int N = 105;

ifstream in ("royfloyd.in");
ofstream out("royfloyd.out");
// auto& in = cin;
// auto& out = cout;

int n, m[N][N];

void read()
{
	in>>n;
	for(int i=0;i<n;i++)
		for(int j=0;j<n;j++)
			in>>m[i][j];
}
void royfloyd()
{
	for(int i=0;i<n;i++)
		for(int j=0;j<n;j++)
			for(int k=0;k<n;k++)
				if(m[i][k] && m[k][j])
					if((m[i][j] > m[i][k] + m[k][j])||m[i][j]==0)
						m[i][j] =  m[i][k] + m[k][j];
}
void show()
{
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
			out<<m[i][j]<<' ';
		out<<endl;
	}
}
int main(){
	read();
	royfloyd();
	show();
	return 0;
}