Pagini recente » Cod sursa (job #911879) | Cod sursa (job #1312364) | Cod sursa (job #2473853) | Cod sursa (job #1732794) | Cod sursa (job #971145)
Cod sursa(job #971145)
#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; i++)
for(int j(0); j < nV; j++)
{
scanf("%d", &nArr[i * nV + j]);
if(i == j) nArr[i * nV + j] = 0;
else if(nArr[i * nV + j] == 0) nArr[i * nV + j] = INT_MAX;
}
for(int i(0); i < nV; i++)
for(int j(0); j < nV; j++)
for(int k(0); k < nV; k++)
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++)
printf("%d ", nArr[i * nV + j]);
printf("%s", "\n");
}
return 0;
}