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"); }