Вы находитесь на странице: 1из 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];int a,j;
int main()
{
int i,vert=4,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");
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++;
}
pre[0]=w;
s[i][j+1]=mini(pre);
}
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])
i++;
else
i=vert;
}
}
printf("\nFALSE\n");
return 0;
}
int mini(int pr[])
{
int x,y,min;
min=pr[1];
for(x=2;x<pr[0];x++) if(pr[x]<min) min=pr[x];
return(min);
}

Вам также может понравиться