Problem Description
DaYu在新的学习开始学习新的数学知识,一天DaYu学习集合的时候遇到一个问题,他有两个集合A和B,他想知道A是不是B的子集。
Input
多组输入,每组的第一行有两个数n,m,0 < n,m < 10^5。表示集合A的大小和集合B的大小。第二行输入n个数表示集合A,第三行输入m个数表示集合B,|data_i| < 10^5
Output
如果A是B的子集,输出"true",否则输出"false"。
Example Input
3 5 1 2 3 1 5 4 3 2 3 5 1 2 3 1 4 5 3 6
Example Output
true false
code:
#include <stdio.h>
#include <string.h>
int main()
{
int a[140010], b[140010];
int n, i, m, j;
while(~scanf("%d%d", &n, &m))
{
for(i = 0;i<n;i++)
{
scanf("%d", &a[i]);
}
for(i = 0;i<m;i++)
{
scanf("%d", &b[i]);
}
int flag = 1, cnt = 0;
for(i = 0;i<n;i++)
{
cnt = 0;
for(j = 0;j<m;j++)
{
if(a[i]==b[j])
{
cnt = 1;
break;
}
}
if(cnt==0)
{
flag = 0;
break;
}
}
if(flag) printf("true\n");
else printf("false\n");
}
本文介绍了一个简单的算法问题,即如何判断一个集合是否为另一个集合的子集,并提供了一段C语言实现的代码示例。
502

被折叠的 条评论
为什么被折叠?



