#include <iostream>
#include <set>
using namespace std;
void ShowSet(set<int> V)
{
set<int>::iterator it;
for (it=V.begin();it!=V.end();it++)
{
cout<<*it<<" ";
}
cout<<endl;
}
void Inte(set<int>a,set<int>b)//交集
{
set<int>::iterator it;
for (it=a.begin();it!=a.end();it++)
{
if (b.find(*it)!=b.end())
{
cout<<*it<<" ";
}
}
cout<<endl;
}
void Sub(set<int>a,set<int>b)//差集
{
set<int>::iterator it;
for (it=a.begin();it!=a.end();it++)
{
if (b.find(*it)!=b.end())
continue;
cout<<*it<<" ";
}
cout<<endl;
}
void unio(set<int>a,set<int>b,set<int>c)//并集
{
set<int>::iterator it=a.begin();
for (;it!=a.end();it++)
{
c.insert(*it);
}
it=b.begin();
for (;it!=b.end();it++)
{
c.insert(*it);
}
ShowSet(c);
}
int main()
{
set<int> a,b,c;
int em;
int num1,num2;
cout<<"输入A,B长度"<<endl;
cin>>num1>>num2;
while (num1--)
{
cin>>em;
a.insert(em);
}
while (num2--)
{
cin>>em;
b.insert(em);
}
cout<<"选择操作:"<<endl<<"I:交集"<<" "<<"U:并集"<<" "<<"S:差集"<<endl;
char ch;
while (cin>>ch)
{
if (ch=='I')//交集
{
Inte(a,b);
}
else if (ch=='U')//并集
{
unio(a,b,c);
}
else if (ch=='S')//差集
{
bool is;
cout<<"A - B is 1, B - A is 0."<<endl;
cin>>is;
if (is==1)
Sub(a,b);
else
Sub(b,a);
}
else
cout<<"输入有误!"<<endl;
}
return 0;
}