만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

좋은 놈, 나쁜 놈, 그리고 추한 놈

시간 제한2초메모리 제한512 MB

요약
매 라운드 후 플레이어가 0에 있는지만 알려주는 상황에서, 플레이어가 Good, Bad, Ugly 중 무엇인지 30m 라운드 이내에 판별합니다.
난이도

보통10점 중 7점

유형
시뮬레이션, 수학, 게임 이론
정답자
아직 제출이 없습니다

문제

수직선을 생각하자. 플레이어는 처음에 x=px = p 위치에 서 있다. 매 라운드가 시작될 때 "+" 또는 "-" 중 하나를 말할 수 있다. 그러면 플레이어는 말한 기호에 따라 위치를 옮긴다. 기호 tt를 말했고 플레이어가 위치 xx에 있었다면, 플레이어는 x′=x+dtx' = x + d_{t}로 이동한다. 여기서 d+d_{+}와 d−d_{-}는 두 정수 상수다.

플레이어는 다음 중 하나다.

  • 좋은 플레이어(Good)는 p=mp = m, d+=2d_{+} = 2, d−=−1d_{-} = -1이다.
  • 나쁜 플레이어(Bad)는 p=−mp = -m, d+=1d_{+} = 1, d−=−2d_{-} = -2이다.
  • 추한 플레이어(Ugly)는 p=mp = m 또는 p=−mp = -m 중 하나이고, d+=1d_{+} = 1과 d−=−1d_{-} = -1 또는 d+=−1d_{+} = -1과 d−=1d_{-} = 1 중 하나다.

정수 상수 mm (1≤m≤10001 \le m \le 1000)의 값도 모른다. 매 라운드가 끝나면 플레이어는 자신이 x=0x = 0에 있는지 아닌지 알려준다. 몇 라운드를 진행하면 플레이어가 Good, Bad, Ugly 중 누구인지 유일하게 가려낼 수 있다. 최대 30m30m 라운드 안에 해결하라.

테스트마다 mm, pp, d+d_{+}, d−d_{-}는 위 규칙에 따라 미리 정해지며, 검사 과정에서 바뀌지 않는다.

예제1

  1. 예제 1

    입력
    
    0
    
    1
    
    예상 출력
    -
    
    -
    
    ! good