1. 程式人生 > >SDUT 離散題目4 求兩個集合的交集

SDUT 離散題目4 求兩個集合的交集

離散題目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; }