Pagini recente » Cod sursa (job #3149063) | Cod sursa (job #2424468) | Cod sursa (job #2499268) | Cod sursa (job #2181199) | Cod sursa (job #970730)
Cod sursa(job #970730)
#include <cstdio>
#include <climits>
int main(void)
{
freopen("royfloyd.in", "r", stdin);
freopen("royfloyd.out", "w", stdout);
int nV;
scanf("%d", &nV);
int *nArr_c = new int[nV * nV];
for(int i(0); i < nV * nV; i++)
scanf("%d", &nArr_c[i]);
int *nArr = new int[nV * nV];
for(int i(0); i < nV * nV; i++)
nArr[i] = INT_MAX;
for(int i(0); i < nV; i++)
for(int j(0); j < nV; j++)
nArr[i * nV + j] = nArr_c[i * nV + j];
for(int i(0); i < nV; i++)
nArr[i * nV + i] = 0;
for(int k(0); k < nV; k++)
for(int i(0); i < nV; i++)
for(int j(0); j < nV; j++)
if(nArr[i * nV + j] > nArr[i * nV + k] + nArr[k * 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++)
if(nArr[i * nV + j] == INT_MAX) printf("%d ", 0);
else printf("%d ", nArr[i * nV + j]);
printf("%s", "\n");
}
return 0;
}