#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 件のコメント:
コメントを投稿