Cod sursa(job #1980422)

Utilizator vlcmodanModan Valentin vlcmodan Data 13 mai 2017 00:45:02
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include<stdio.h>
#include<math.h>
#include<iostream>
#include<vector>

#define N 105
using namespace std;

int t;

int a[N][N];

int n;

int change = 0;
void checka(int i, int j, int t)
{
	if (a[i][j] + a[j][t] < a[i][t])
	{
		a[i][t] = (a[i][j] + a[j][t]);
		change = 0;
	}
}
void solve()
{
	change = 0;
	while (change != 1)
	{
		change = 1;
		for (int i = 1; i <= n; i++)
		{
			for (int j = 1; j <= n; j++)
			{

				for (int t = 1; t <= n; t++)
				{

					checka(t, i, j);
				
				}
			}
		}
	}
}

void display()
{
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= n; j++)
		{
			printf("%d ", a[i][j]);
		}
		printf("\n");
	}
}
int main()
{
	freopen("royfloyd.in", "r", stdin);
	freopen("royfloyd.out", "w", stdout);

	scanf("%d", &n);

	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= n; j++)
		{
			scanf("%d", &a[i][j]);
			
		}
	}

	solve();
	display();

	return 0;
}