SRM 446 div1 easy

他の面に出たときは,今までいた面の反対側から出てくると考えると,1面だけ考えればよい.

#coding: utf-8
cube = (('RED','BLUE','RED'),
        ('BLUE','GREEN','BLUE'),
        ('RED','BLUE','RED'))
direction = ((0,1),(1,0),(0,-1),(-1,0))
class CubeWalking:
    def finalPosition(self, movement):
        d = 0
        px,py = 1,1
        for m in movement:
            if m == 'L':
                d -= 1
                if d < 0: d += 4
            elif m == 'R':
                d += 1
                if d >= 4: d -= 4
            elif m == 'W':
                dx = direction[d][0]
                dy = direction[d][1]
                px += dx
                px %= 3
                py += dy
                py %= 3
        return cube[px][py]