题意:有六种颜色宝石,每种宝石对应一种能力。你现在已经有N个颜色宝石了,问你还缺少哪几个能力的宝石?
思路:用map颜色映射一下能力,暴力查找看缺少哪几个。
#include<bits/stdc++.h> using namespace std; const int MAXN = 1005; map<string, string> mp; set<string> s; string ans[10]; int main() { mp["purple"] = "Power"; mp["green"] = "Time"; mp["blue"] = "Space"; mp["orange"] = "Soul"; mp["red"] = "Reality"; mp["yellow"] = "Mind"; int n; scanf("%d", &n); string str; for (int i = 0; i < n; i++) cin >> str, s.insert(str); int cnt = 0; for (auto i: mp) { if (!s.count(i.first)) ans[cnt++] = i.second; } cout << cnt << endl; for (int i = 0; i < cnt; i++) cout << ans[i] << endl; return 0; } /* 0 */