题目链接:
//先用STL里的函数写了一次,STL虽然有性能瓶颈,但是真的好用啊!~
#include <iostream>
#include <vector>
#include <algorithm>
#define rep(i, k, n) for (int i = k; i < (n); i++)
using namespace std;
const int N = 1e2 + 5;
int n, m, x, a[N], b[N];
int main()
{
while (cin >> n >> m && (n || m) )
{
vector<int> v(N);
vector<int>::iterator it;
rep(i, 0, n) cin >> a[i];
rep(i, 0, m) cin >> b[i];
sort(a, a + n);
sort(b, b + m);
it = set_difference(a, a + n, b, b + m, v.begin());
v.resize(it - v.begin());
if (v.empty())
cout << "NULL" << endl;
else
{
for (it = v.begin(); it != v.end(); it++)
cout << *it << " ";
cout << endl;
}
}
return 0;
}
//不过后来觉得,vector 用来取并集的函数,很容易忘...于是又用 set 写了一次
#include <iostream>
#include <set>
#define rep(i, k, n) for (int i = k; i < (n); i++)
using namespace std;
const int N = 1e2 + 5;
int n, m, x;
int main()
{
while (cin >> n >> m && (n || m) )
{
set<int> s;
set<int>::iterator it;
rep(i, 0, n)
{
cin >> x;
s.insert(x);
}
rep(i, 0, m)
{
cin >> x;
it = s.find(x);
if (it != s.end())
s.erase(x);
}
if (s.empty()) cout << "NULL";
else
for (it = s.begin(); it != s.end(); it++)
cout << *it << " ";
cout << endl;
}
return 0;
}