#include<iostream> int main() { for (int n; std::cin >> n, n;) { int s = 1, d[] = {2, 3, 5, 4, 1}, i, t, a, b; for (i = 0; i++ < n; s += d[4]) { char c[9], e; std::cin >> c; e = *c; a = 0; if (e != 'R' && e != 'L') { e == 'N' ? a = 2, b = 0 : e == 'E' ? a = 1, b = 3 : e == 'W' ? a = 3, b = 1 : b = 2; d[a] = d[4]; d[4] = d[b]; d[b] = 7 - d[a]; } else { e == 'R' ? : a = 2; t = *d; *d = d[1 + a]; d[1 + a] = d[2]; d[2] = d[3 - a]; d[3 - a] = t; } } std::cout << s << '\n'; } return 0; }バリンバリンの自分なりのショートコーディング.
納得の331 Bytesです.
問題はサイコロに関する問題なんですが,
回転の種類を大きく2つに分けることができて,
関数化できるので,上記のようなショートコーディングが行えてます.
0 件のコメント:
コメントを投稿