Cod sursa(job #709727)

Utilizator stefaniaaStefania Aungurencei stefaniaa Data 8 martie 2012 15:46:46
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#include <stdio.h>
using namespace std;
FILE * roy;
ofstream g("royfloyd.out");
int a[103][103];
int n;
void citire()
{
	int i,j;
	fscanf(roy,"%d",&n);
	for (i=1;i<=n;i++)
		for (j=1;j<=n;j++)
			fscanf(roy,"%d",&a[i][j]);
}
int minim(int x,int y)
{
	if (x<y) return x;
	else return y;
}
void royf()
{
	int i,j,k;
	for (k=1;k<=n;k++)
		for (i=1;i<=n;i++)
			for (j=1;j<=n;j++)
				if (i!=j && a[i][k] && a[k][j] ) a[i][j]=minim(a[i][j],a[i][k]+a[k][j]);
}
void afis()
{
	int i,j;
	for (i=1;i<=n;i++)
	{
		for (j=1;j<=n;j++)
			g<<a[i][j]<<' ';
		g<<'\n';
	}
}
int main()
{
	roy=fopen("royfloyd.in","r");
	citire();
	royf();
	afis();
	return 0;
}