同一个人可以被查询多次,但只输出一次。
没有朋友的人可以是根本没安装“朋友圈”,也可以是只有自己一个人在朋友圈的人。
//总有一些人因为太帅而没有朋友。本题就要求你找出那些帅到没有朋友的人。
//没有朋友的人可以是根本没安装“朋友圈”,
//也可以是只有自己一个人在朋友圈的人。
//虽然有个别自恋狂会自己把自己反复加进朋友圈,
//但题目保证所有K超过1的朋友圈里都至少有2个不同的人。
//N<=100,是已知朋友圈的个数;
//随后N行,
//K(朋友圈人数) id1,id2....//99999
//M:等待查询的人数
//随后1行M个等待查询的ID
//按照输入的顺序输出那些帅到没有朋友的人
/*
#include <iostream>
#include <set>
//#include <vector>
using namespace std;
const int N = 100010;
set<int>s[N];
int cnt = 0;
int s_size[N] = { 1 };
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
int k;
cin >> k;
for (int j = 0; j < k; j++) {
int tmp;
cin >> tmp;
if (k != 1) {
s[i].insert(tmp);
s_size[i] = 2;
}
}
}
int q;
cin >> q;
int vis[N] = { false };//都没有被查询//同一个人可以被查询多次,但只输出一次。
for (int i = 0; i < q; i++) {
int id;
cin >> id;
bool flag = false;//没朋友
int j;
for (j = 0; j < n; j++) {
if (s_size[j] != 1) {
if (vis[id] == false) {
if (s[j].find(id) != s[j].end()) {
flag = true;//有朋友
break;
}
}
else break;
}
}
if (flag == false && vis[id] == false) {
vis[id] = true;
if (cnt == 0)
//cout << id;
printf("%05d", id);
else
//cout << " " << id;
printf(" %05d", id);
cnt++;
}
}
if (cnt == 0)cout << "No one is handsome";
return 0;
}
*/
//总有一些人因为太帅而没有朋友。本题就要求你找出那些帅到没有朋友的人。
//没有朋友的人可以是根本没安装“朋友圈”,
//也可以是只有自己一个人在朋友圈的人。
//虽然有个别自恋狂会自己把自己反复加进朋友圈,
//但题目保证所有K超过1的朋友圈里都至少有2个不同的人。
//N<=100,是已知朋友圈的个数;
//随后N行,
//K(朋友圈人数) id1,id2....//99999
//M:等待查询的人数
//随后1行M个等待查询的ID
//按照输入的顺序输出那些帅到没有朋友的人
#include <iostream>
#include <set>
//#include <vector>
using namespace std;
const int N = 100010;
set<int>s[N];
int cnt = 0;
int s_size[N] = { 2 };
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
int k;
cin >> k;
if (k != 1) {
for (int j = 0; j < k; j++) {
int tmp;
cin >> tmp;
//if (k != 1) {
s[i].insert(tmp);
//s_size[i] = 2;
//}
}
}
else {
s_size[i] = 1;
int lose;
cin >> lose;
}
}
int q;
cin >> q;
int vis[N] = { false };//都没有被查询//同一个人可以被查询多次,但只输出一次。
for (int i = 0; i < q; i++) {
int id;
cin >> id;
bool flag = false;//没朋友
int j;
for (j = 0; j < n; j++) {
if (s_size[j] != 1) {
if (vis[id] == false) {
if (s[j].find(id) != s[j].end()) {
flag = true;//有朋友
break;
}
}
else break;
}
}
if (flag == false && vis[id] == false) {
vis[id] = true;
if (cnt == 0)
//cout << id;
printf("%05d", id);
else
//cout << " " << id;
printf(" %05d", id);
cnt++;
}
}
if (cnt == 0)cout << "No one is handsome";
return 0;
}