用C++实现“该死的单身(单身狗)” 是单身人士的中文昵称。你应该在一个大型聚会上找到那些独处的人,这样他们就可以得到照顾。 输入 第一行,一个正整数N(N<=50000),即伴侣总数。然后,N行成对的数字,每行给出一对5位数的ID(即从00000到99999)。在情侣列表之后,有一个正整数M(M<=10000),后面是派对客人的 ID。数字用空格分隔。保证没有人会重婚(重婚) 或者和不止一个同伴在一起。 输出 首先在一行中打印孤独客人的总数。然后在下一行中,按递增顺序打印他们的ID。数字必须正好用1个空格分隔。 样例 输入 复制 3 11111 22222 33333 44444 55555 66666 7 55555 44444 10000 88888 22222 11111 23333 输出 复制 5 10000 23333 44444 55555 88888
时间: 2024-04-17 17:28:05 浏览: 97
以下是使用C++实现该问题的示例代码:
```cpp
#include <iostream>
#include <unordered_map>
#include <vector>
#include <algorithm>
int main() {
std::unordered_map<int, int> coupleMap;
std::vector<int> lonelyGuests;
int N;
std::cin >> N;
// 读取情侣列表
for (int i = 0; i < N; i++) {
int id1, id2;
std::cin >> id1 >> id2;
coupleMap[id1] = id2;
coupleMap[id2] = id1;
}
int M;
std::cin >> M;
// 读取派对客人ID
for (int i = 0; i < M; i++) {
int guestId;
std::cin >> guestId;
// 检查是否有配偶,如果没有则加入到孤独客人列表
if (coupleMap.find(guestId) == coupleMap.end()) {
lonelyGuests.push_back(guestId);
}
}
// 按递增顺序对孤独客人列表进行排序
std::sort(lonelyGuests.begin(), lonelyGuests.end());
// 打印孤独客人的总数和ID列表
std::cout << lonelyGuests.size() << std::endl;
for (int i = 0; i < lonelyGuests.size(); i++) {
std::cout << lonelyGuests[i] << " ";
}
std::cout << std::endl;
return 0;
}
```
你可以将上述代码保存为一个名为 `lonely_guests.cpp` 的文件,并使用C++编译器编译运行。
希望这可以帮助到你!如果你有任何其他问题,请随时问我。
阅读全文