题目描述
X 国的情报委员受到一份可靠的消息,信息表明 Y 国将派espionage去窃取 X 国的机密文件。X 国指挥官手中有两份名单列表,一份是 Y 国派往 X 国的espionage名单列表,另一份是 X 国以前派往 Y 国的espionage名单。这两份名单列表可能有些重叠。因为espionage可能同时扮演两个角色,称之“双重espionage”。因此,Y 国可以把双重espionage送回 X 国。很明显,这对 X 国是有利的,因为双重espionage可以把 Y 国的机密文件带回,而不必担心在 Y 国边境被拘留。所以指挥官决定抓住由 Y 国派出的espionage,让普通人和双重espionage进入。那么你能确定指挥官需要抓捕的espionage名单吗?
输入格式
有多组测试数据。
每组数据由四部分组成:
第一部分包含 3 个整数 A、B、C,分别代表进入边境的人数、Y 国将派出的espionage人数,X 国以前派到 Y 国的espionage人数。
第二部分包含 A 个字符串,为进入边境的人员名单。
第三部分包含 B 个字符串,为由 Y 国派出的间谍名单。
第四部分包含 C 个字符串,即双重espionage的名单。
在一份名单中不会有名字重复,如果有重复的名字出现在两份名单中,则表示同一人。
姓名字符串长度不超过 10,
各名单列表最多 500 人。
输出格式
按照列表 B 的出现顺序输出指挥官要抓捕的espionage名单。
如果不应抓捕任何人,则输出 “No enemy spy”。
输入样例
8 4 3
Zhao Qian Sun Li Zhou Wu Zheng Wang
Zhao Qian Sun Li
Zhao Zhou Zheng
2 2 2
Zhao Qian
Zhao Qian
Zhao Qian
输出样例
Qian Sun Li
No enemy spy
知识总结
- #include <bits/stdc++.h> C++万能头文件
- set集合的方法insert、count
#include <bits/stdc++.h>
using namespace std;
int main()
{