#include <stdio.h>
int isSubset(int arr1[], int arr2[], int m, int n)
{
int i = 0;
int j = 0;
for (i=0; i<n; i++)
{
for (j = 0; j<m; j++)
{
if(arr2[i] == arr1[j])
break;
}
/* If the above inner loop was not broken at all then
arr2[i] is not present in arr1[] */
if (j == m)
return 0;
}
/* If we reach here then all elements of arr2[]
are present in arr1[] */
return 1;
}
int main()
{
int arr1[] = {11, 1, 13, 21, 3, 7};
int arr2[] = {11,2, 7, 1};
int m = sizeof(arr1)/sizeof(arr1[0]);
int n = sizeof(arr2)/sizeof(arr2[0]);
if(isSubset(arr1, arr2, m, n))
printf("arr2[] is subset of arr1[] "); else
printf("arr2[] is not a subset of arr1[]");
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgaXNTdWJzZXQoaW50IGFycjFbXSwgaW50IGFycjJbXSwgaW50IG0sIGludCBuKQp7CiAgICBpbnQgaSA9IDA7CiAgICBpbnQgaiA9IDA7CiAgICBmb3IgKGk9MDsgaTxuOyBpKyspCiAgICB7CiAgICAgICAgZm9yIChqID0gMDsgajxtOyBqKyspCiAgICAgICAgewogICAgICAgICAgIGlmKGFycjJbaV0gPT0gYXJyMVtqXSkKICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgIAogICAgICAgIC8qIElmIHRoZSBhYm92ZSBpbm5lciBsb29wIHdhcyBub3QgYnJva2VuIGF0IGFsbCB0aGVuCiAgICAgICAgICAgYXJyMltpXSBpcyBub3QgcHJlc2VudCBpbiBhcnIxW10gKi8KICAgICAgICBpZiAoaiA9PSBtKQogICAgICAgICAgIHJldHVybiAwOwogICAgfQogICAgIAogICAgLyogSWYgd2UgcmVhY2ggaGVyZSB0aGVuIGFsbCBlbGVtZW50cyBvZiBhcnIyW10gCiAgICAgIGFyZSBwcmVzZW50IGluIGFycjFbXSAqLwogICAgcmV0dXJuIDE7Cn0KICAKaW50IG1haW4oKQp7CiAgICBpbnQgYXJyMVtdID0gezExLCAxLCAxMywgMjEsIDMsIDd9OwogICAgaW50IGFycjJbXSA9IHsxMSwyLCA3LCAxfTsKICAgCiAgICBpbnQgbSA9IHNpemVvZihhcnIxKS9zaXplb2YoYXJyMVswXSk7CiAgICBpbnQgbiA9IHNpemVvZihhcnIyKS9zaXplb2YoYXJyMlswXSk7CiAKICAgIGlmKGlzU3Vic2V0KGFycjEsIGFycjIsIG0sIG4pKQogICAgICBwcmludGYoImFycjJbXSBpcyBzdWJzZXQgb2YgYXJyMVtdICIpOwogICAgZWxzZQogICAgICBwcmludGYoImFycjJbXSBpcyBub3QgYSBzdWJzZXQgb2YgYXJyMVtdIik7ICAgICAgCiAKICAgIGdldGNoYXIoKTsKICAgIHJldHVybiAwOwp9