SRM 489 div1 med:DiceRotation
問題:TopCoder Statistics - Problem Statement
解法:下の写真参考。各状態(1:1が上を向く 2:1が右を向く 3:1が奥を向く etc)からx方向,y方向に動かした時どう状態遷移するかを考える。最後に1になれば良いので,写真に書いてあるように赤,青,緑,橙のいずれかのように遷移をたどるしかない。それぞれの場合に題意のような遷移が何通りあるかを調べるだけ。
以下ソースコード
class DiceRotation { public: int theCount(int gx, int gy) { int ret = 0; if (gx == 4) ret += gy+1; if (gy == 4) ret += gx+1; if (gx >= 2 && gy >= 2) ret += 2; return ret; } };
sugimさんがunko(x, y)とかいう関数を作っていて汚かった。