L1-020 帥到沒朋友 (20分)
當芸芸眾生忙着在朋友圈中發照片的時候,總有一些人因為太帥而沒有朋友。本題就要求你找出那些帥到沒有朋友的人。
輸入格式:
輸入第一行給出一個正整數 \(N \; (\leq 100)\),是已知朋友圈的個數;隨后 \(N\) 行,每行首先給出一個正整數 \(K \; (\leq 1000)\),為朋友圈中的人數,然后列出一個朋友圈內的所有人————為方便起見,每人對應一個 \(ID\) 號,為 \(5\) 位數字(從 \(00000\) 到 \(99999\) ),\(ID\) 間以空格分隔;之后給出一個正整數 \(M \; (\leq 10000)\),為待查詢的人數;隨后一行中列出 \(M\) 個待查詢的 \(ID\),以空格分隔。
注意:沒有朋友的人可以是根本沒安裝“朋友圈”,也可以是只有自己一個人在朋友圈的人。雖然有個別自戀狂會自己把自己反復加進朋友圈,但題目保證所有 \(K\) 超過 \(1\) 的朋友圈里都至少有 \(2\) 個不同的人。
輸出格式:
按輸入的順序輸出那些帥到沒朋友的人。\(ID\) 間用 \(1\) 個空格分隔,行的首尾不得有多余空格。如果沒有人太帥,則輸出 No one is handsome
。
注意:同一個人可以被查詢多次,但只輸出一次。
輸入樣例1:
3
3 11111 22222 55555
2 33333 44444
4 55555 66666 99999 77777
8
55555 44444 10000 88888 22222 11111 23333 88888
輸出樣例1:
10000 88888 23333
輸入樣例2:
3
3 11111 22222 55555
2 33333 44444
4 55555 66666 99999 77777
4
55555 44444 22222 11111
輸出樣例2:
No one is handsome
代碼:
#include<bits/stdc++.h>
using namespace std;
int n,k,m,x;
bool flag;
set<int>s,ans;
int main()
{
cin>>n;
while(n--)
{
cin>>k;
if(k>=2)
while(k--)
{
cin>>x;
s.insert(x);
}
else cin>>x;
}
cin>>m;
while(m--)
{
cin>>x;
if(s.find(x)==s.end()&&ans.find(x)==ans.end())
{
ans.insert(x);
if(flag)cout<<' ';
flag=1;
cout<<setw(5)<<setfill('0')<<x;
}
}
if(!flag)cout<<"No one is handsome";
return cout<<endl,0;
}