题目描述
有两个数列A和B,那些在A中出现但不在B中出现的数就称为集合A和集合B的差:A-B。例如:A={1 ,4, 5, 2, 6} ,B={ 5,3,2,7} , 那么A-B = {1,4,6}。
现在给你2个集合A和B,求A-B有多少个数。
输入格式
输入文件名:636.in
第一行2个整数na和nb,表示集合A和集合B各有多少个整数,1<=na,nb<=10000。
第二行na个不同的正整数,表示集合A里的数,每个正整数不超过10000。
第二行nb个不同的正整数,表示集合B里的数,每个正整数不超过10000。
输出格式
输出文件名:636.out
一个整数,A-B里有多少数。
输入/输出例子1
输入:
5 4
5 2 4 8 7
3 7 6 2
输出:
3
样例解释
A-B={5,4,8 }
我们可以是用集合set<int>inest,erase
C++
#include<bits/stdc++.h>
using namespace std;
set<int>a;//setint集合
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
a.insert(x);//加入到集合
}
for(int i=1;i<=m;i++)
{
int x;
cin>>x;
a.erase(x);
}
cout<<a.size();输出集合
return 0;
}