离散题目4
Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic
Problem Description
题目给出两个非空整数集,请写出程序求两个集合的交集。
Input
多组输入,每组输入包括两行,第一行为集合A的元素,第二行为集合B的元素。具体参考示例输入。 每个集合元素个数不大于3000,每个元素的绝对值不大于2^32 - 1。
Output
每组输入对应一行输出,为A、B的交集,如果交集为空输出”NULL”,否则交集的元素按递增顺序输出,每个元素之间用空格分割。
Example Input
1 2 3 4 5
1 5 3 6 7
1 2 4 5 3
6 7 8 9 10
Example Output
1 3 5
NULL
#include<bits/stdc++.h>
using namespace std;
int main()
{
string str1, str2;
while(getline(cin, str1))
{
getline(cin, str2);
set<long long> q1;
set<long long> q2;
set<long long> q;
set<long long> :: iterator s;
stringstream s1;
stringstream s2;
s1 << str1;
s2 << str2;
int v;
while(s1 >> v)
q1.insert(v);
while(s2 >> v)
q2.insert(v);
int flag = 1;
set_intersection(q1.begin(), q1.end(), q2.begin(), q2.end(), inserter(q, q.begin()));
for(s = q.begin(); s != q.end(); s++)
{
if(flag)
{
cout << *s;
flag = 0;
}
else
cout << ' ' << *s;
}
if(flag)
cout << "NULL";
cout << endl;
}
return 0;
}