A - Dice I

cpaojitp1

最終更新日

Table of Contents

Loading...

問題

https://onlinejudge.u-aizu.ac.jp/courses/lesson/2/ITP1/11/ITP1_11_A (新しいタブで開く)

問題文

サイコロを転がすシミュレーションを行うプログラムを作ってね。
サイコロの展開図は以下の通り。

1
4235
6

最初は 1 が上になっていて、 NSEW = 5234 の状態。
各面には DiD_i が書かれている。

制約

サンプル

I/O 1

1 2 4 8 16 32 SE
8

各面に 1, 2, 4, 8, 16, 32 が書かれている。
S, E の方向に順番に転がすと、上には 8 が表示される。

I/O 2

1 2 4 8 16 32 EESWN
32

考察

頑張って実装する。

コード

https://onlinejudge.u-aizu.ac.jp/status/users/a01sa01to/submissions/1/ITP1_11_A/judge/6370973/C++17 (新しいタブで開く)

struct Dice { int d[6]; void shake(string s) { for (char c : s) { switch (c) { case 'N': swap(d[0], d[1]), swap(d[1], d[5]), swap(d[5], d[4]); break; case 'S': swap(d[0], d[4]), swap(d[4], d[5]), swap(d[5], d[1]); break; case 'E': swap(d[0], d[3]), swap(d[3], d[5]), swap(d[5], d[2]); break; case 'W': swap(d[0], d[2]), swap(d[2], d[5]), swap(d[5], d[3]); break; } } } }; int main() { Dice dice; rep(i, 6) cin >> dice.d[i]; string s; cin >> s; dice.shake(s); cout << dice.d[0] << endl; return 0; }