#include<stdio.h>
int min(int a, int b)
{
return(a < b ? a : b);
}
void floyd(int D[][10],int n)
{
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
D[i][j]=min(D[i][j],D[i][k]+D[k][j]);
}
int main()
{
int n, cost[10][10];
printf("Enter no. of Vertices: ");
scanf("%d",&n);
printf("Enter the cost matrix\n");
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
scanf("%d",&cost[i][j]);
floyd(cost,n);
printf("All pair shortest path\n");
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
printf("%d ",cost[i][j]);
printf("\n");
}
}
I2luY2x1ZGU8c3RkaW8uaD4KaW50IG1pbihpbnQgYSwgaW50IGIpCnsKcmV0dXJuKGEgPCBiID8gYSA6IGIpOwp9CnZvaWQgZmxveWQoaW50IERbXVsxMF0saW50IG4pCnsKZm9yKGludCBrPTE7azw9bjtrKyspCmZvcihpbnQgaT0xO2k8PW47aSsrKQpmb3IoaW50IGo9MTtqPD1uO2orKykKRFtpXVtqXT1taW4oRFtpXVtqXSxEW2ldW2tdK0Rba11bal0pOwp9CmludCBtYWluKCkKewppbnQgbiwgY29zdFsxMF1bMTBdOwpwcmludGYoIkVudGVyIG5vLiBvZiBWZXJ0aWNlczogIik7CnNjYW5mKCIlZCIsJm4pOwpwcmludGYoIkVudGVyIHRoZSBjb3N0IG1hdHJpeFxuIik7CmZvcihpbnQgaT0xO2k8PW47aSsrKQpmb3IoaW50IGo9MTtqPD1uO2orKykKc2NhbmYoIiVkIiwmY29zdFtpXVtqXSk7CmZsb3lkKGNvc3Qsbik7CnByaW50ZigiQWxsIHBhaXIgc2hvcnRlc3QgcGF0aFxuIik7CmZvcihpbnQgaT0xO2k8PW47aSsrKQp7CmZvcihpbnQgaj0xO2o8PW47aisrKQpwcmludGYoIiVkICIsY29zdFtpXVtqXSk7CnByaW50ZigiXG4iKTsKfQp9