The Bento Box Adventure

题目来源:codeforces 2041A

题目名称:The Bento Box Adventure

题目链接:https://codeforces.com/contest/2041/problem/A

题目描述:
您计划从周一到周五每天去一家不同的餐馆打包盒饭作为午餐。从周一到周四,您已经去过一家餐厅,每次都去不同的餐厅。现在是周五,你想去本周最后一家还没去过的餐厅。
请编写一个程序,输入你已经去过的四家餐厅(周一至周四每天一家),然后输出你周五应该去的餐厅

输入:
单行输入,包含四个整数 a,b,c,d,每个整数在 1 到 5 之间(含 5),依次代表您从周一到周四去过的餐厅编号。
1≤a,b,c,d≤5
所有四个数字都将不同。

输出:
输出您周五应该去的餐厅编号

样例1:
输入 1 3 2 5
输出 4

样例2:
输入 2 5 4 3
输出 1

思路:集合的差集操作

代码如下:

点击查看代码
#include <bits/stdc++.h>
using namespace std;
int main(){
	vector<int> a(4);
    // 创建一个包含所有餐厅编号 (1-5) 的集合
	set<int> b={1,2,3,4,5};
	set<int> d;
	for(int i=0;i<4;i++){
		cin>>a[i];
	}
    // 将访问过的餐厅转换为集合
	set<int> c(a.begin(),a.end());
    // 找出剩余的餐厅 (集合差)
	for(int ret:b){
		if(c.find(ret)==c.end()){
			d.insert(ret);
		}
	}
    // 返回剩余集合中的唯一元素
	int s=*d.begin();
	cout<<s<<endl;
	return 0;
}
posted @ 2024-11-25 19:58  hstrop  阅读(27)  评论(0编辑  收藏  举报