Cod sursa(job #971138)

Utilizator cosmo0093Raduta Cosmin cosmo0093 Data 8 iulie 2013 16:54:23
Problema Floyd-Warshall/Roy-Floyd Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <cstdio>
#include <climits>

int main(void)
{
    freopen("royfloyd.in", "r", stdin);
    freopen("royfloyd.out", "w", stdout);
    int nV;
    scanf("%d", &nV);
    int *nArr = new int[nV * nV];
    for(int i(0); i < nV * nV; i++)
        scanf("%d", &nArr[i]);
    for(int i(0); i < nV; i++)
    	for(int j(0); j < nV; j++)
    		for(int k(0); k < nV; k++)
    			if(i != j && nArr[i * nV + j] && nArr[i * nV + k] && nArr[k * nV + j] && 
					nArr[i * nV + k] + nArr[k * nV + j] < nArr[i * nV + j]) 
						nArr[i * nV + j] = nArr[i * nV + k] + nArr[k * nV + j];
	for(int i(0); i < nV; i++)
	{
		for(int j(0); j < nV; j++)
			printf("%d ", nArr[i * nV + j]);
		printf("%s", "\n");
	}
    return 0;
}