Asa's Website

B - Finding Missing Cards

cpaojitp1

最終更新日

Table of Contents

Loading...

問題

https://onlinejudge.u-aizu.ac.jp/courses/lesson/2/ITP1/6/ITP1_6_B

問題文

nn 枚のトランプがある。
足りないカードを出力してね。

順番は以下の通り。

制約

サンプル

I/O 1

47 S 10 S 11 S 12 S 13 H 1 H 2 S 6 S 7 S 8 S 9 H 6 H 8 H 9 H 10 H 11 H 4 H 5 S 2 S 3 S 4 S 5 H 12 H 13 C 1 C 2 D 1 D 2 D 3 D 4 D 5 D 6 D 7 C 3 C 4 C 5 C 6 C 7 C 8 C 9 C 10 C 11 C 13 D 9 D 10 D 11 D 12 D 13
S 1 H 3 H 7 C 12 D 8

考察

まあ set を使うとらく。
なんか card 構造体作ったけど、普通に pair<int, int> でよくない?

コード

https://onlinejudge.u-aizu.ac.jp/status/users/a01sa01to/submissions/1/ITP1_6_B/judge/6370732/C++17

const string C = "SHCD"; map<char, int> mp; struct Card { char icon; int num; bool operator<(const Card& c) const { if (mp[icon] != mp[c.icon]) return mp[icon] < mp[c.icon]; return num < c.num; } }; int main() { rep(i, 4) mp[C[i]] = i; set<Card> all; rep(i, 4) rep(j, 13) all.insert({ C[i], j + 1 }); int n; cin >> n; rep(_, n) { char c; int i; cin >> c >> i; all.erase({ c, i }); } for (auto c : all) cout << c.icon << " " << c.num << endl; }