Professional Documents
Culture Documents
Registration Number:-18MCS0089
Exercise Name:- Set cover Problem
#include<stdio.h>
int check(int*,int);
int intersection(int *,int *,int,int);
void difference(int *,int *,int,int);
void join(int *,int);
int i,j;
for(i=1;i<=b;i++)
for(j=1;j<=a;j++)
if(*(u+j)==*(s+i))
{
*(u+j)=0;
}
}
int i,j,p,q,n,t,in,max,r,X[10],U[10],c[10];
printf("\nEnter number of elements to be inserted in set\n");
scanf("%d",&n);
printf("\nEnter set elements\n");
for(i=1;i<=n;i++)
scanf("%d",&X[i]);
for(i=1;i<=n;i++)
U[i]=X[i];
for(i=1;i<=n;i++)
c[i]=0;
t=check(U,n);
while(t!=0)
{
max=0;
for(i=1;i<=p;i++)
{
in=intersection(f[i].a,U,f[i].length,n);
if(in>max)
{
max=in;
r=i;
}
}
difference(U,f[r].a,n,f[r].length);
join(c,r);
t=check(U,n);
}
printf("\nThe sets to be selected are:\n");
for(i=1;i<=n;i++)
if(c[i]!=0)
printf("Set%d\t",c[i]);
}
TEST CASE