L1-020 帥到沒朋友
阿新 • • 發佈:2021-08-11
當芸芸眾生忙著在朋友圈中發照片的時候,總有一些人因為太帥而沒有朋友。本題就要求你找出那些帥到沒有朋友的人。
輸入格式:
輸入第一行給出一個正整數N(≤100),是已知朋友圈的個數;隨後N行,每行首先給出一個正整數K(≤1000),為朋友圈中的人數,然後列出一個朋友圈內的所有人——為方便起見,每人對應一個ID號,為5位數字(從00000到99999),ID間以空格分隔;之後給出一個正整數M(≤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
使用C++資料結構set即可方便地解決問題,當set不為空時,將set內結果輸出,當set為空,立即輸出No one is handsome;
程式碼:
#include <iostream> #include <set> using namespace std; int main() { int a, b, c; cin >> a; set<string> s, ans; string str; for(int i = 0; i < a; i++) { cin >> b; if(b >= 2) { for(int j = 0; j < b; j++) { cin >> str; s.insert(str); } } else { cin >> str; } } cin >> c; int flag = 0; for(int i = 0; i < c; i++) { cin >> str; if(s.find(str) == s.end() && ans.find(str) == ans.end()) { ans.insert(str); if(flag == 1) cout << " "; cout << str; flag = 1; } } if(flag == 0) cout << "No one is handsome"; return 0; }