The Bento Box Adventure

hstrop發表於2024-11-25

題目來源: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;
}

相關文章