Cod sursa(job #2422158)

Utilizator tudose_bogdanTudose Bogdan tudose_bogdan Data 17 mai 2019 16:41:39
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <vector>
#include<fstream>
using namespace std;

ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
const int N = 101;
int n;
int D[N][N];

void citire()
{
	f >> n;
	for(int i=1;i<=n;i++)
		for (int j = 1; j <= n; j++)
		{
			int y;
			f >> y;
			D[i][j] = y;
		}
}


int main()
{


	citire();
	for (int k = 1; k <= n; k++)
		for (int i = 1; i <= n; i++)
			for (int j = 1; j <= n; j++)
				if (D[i][j] == 0 && i != j)
				{
					if (D[i][k] != 0 && D[k][j] != 0)
						D[i][j] = D[i][k] + D[k][j];
				}
				else if (D[i][j] > D[i][k] + D[k][j] && D[i][k] != 0 && D[k][j] != 0)
					D[i][j] = D[i][k] + D[k][j];


					
		
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= n; j++)
			g << D[i][j] << " ";
		g << endl;
	}



	return 0;
}