You are on page 1of 2

#include<stdio.

h>
#include<conio.h>
#include<stdlib.h>
#include<stdbool.h>
#include<math.h>
#include<string.h>
#include<time.h>
int adj[80][80]={{99,5,99,-2,99,99},{99,99,1,99,99,99},{99,99,99,99,-1,3},
{99,2,4,99,4,99},{99,99,99,99,99,1},{99,99,99,99,99,99}};int a,j;
int main()
{
int i,vert=6,w,pred=1,pre[80]={0},s[80][80],cutoff=8;
int mini(int[]);
/*printf("Number of vertices: ");
scanf("%d",&vert);
printf("Enter the matrix:\n");
for(i=0;i<vert;i++)
for(j=0;j<vert;j++)
scanf("%d",&adj[i][j]);
printf("\n");*/
for(i=0;i<vert;i++)
{
for(j=0;j<vert;j++) printf("%d ",adj[i][j]);
printf("\n");
}
s[0][1]=0;
for(i=1;i<vert;i++) s[i][1]=adj[0][i];
for(j=1;j<vert;j++)
{
for(a=0;a<vert;a++) pre[a]=0;
for(i=1;i<vert;i++)
{
pre[1]=s[i][j];w=2;pred=1;
for(a=1;a<vert;a++) if(adj[a][i]<cutoff)
{
pre[w++]=s[a][j]+adj[a][i];pred++;
//printf("......pre[%d]=%d.\n",w-1,pre[w-1]);
}
pre[0]=w;
s[i][j+1]=mini(pre);
// printf("\ns[%d][%d]=%d\n",i,j+1,s[i][j+1]);
}
for(i=1;i<vert;i++) printf("s[%d][%d]=%d\n",i,j+1,s[i]
[j+1]);printf("--------------------------------------------------------------------
-------\n");
i=1;while(i<vert)
{
if((s[i][j+1]==s[i][j])&&(i==vert-1))
{
for(i=1;i<vert;i++) printf("s[%d][%d]=s[%d][%d]=
%d\n",i,j+1,i,j,s[i][j+1]);
printf("\nTRUE\n");
exit(0);
}
else if(s[i][j+1]==s[i][j])
{
//printf("s[%d][%d]=s[%d][%d]=%d\n",i,j+1,i,j,s[i][j+1]);
i++;
}
else
i=vert;
}
}
printf("\nFALSE\n");
return 0;
}

int mini(int pr[])


{
int x,y,min;
//printf("pred:%d\nPRE",pr[0]);
//printf("pre\n");
//for(y=0;y<pr[0];y++) printf("%d ",pr[y]);printf("==");
min=pr[1];
for(x=2;x<pr[0];x++) if(pr[x]<min) min=pr[x];
//printf("%d",min);
return(min);
}

You might also like