Informatica Online Judge

  베스킨라빈스31 [1785 / 06F9]

Time Limit(Test case) : 1000 (ms)
Number of users who solved : 166   Total Tried : 172


The Champion of this Problem (C++) : admin - ms / 132byte
My Best Submission (C++) : N/A

[koistudy.net (T. HS Jeon 2017)]

Background

배스킨라빈스 31 게임은 31을 부르는 사람이 지는 게임이다.

처음 시작하는 사람은 1부터 3까지의 수를 마음대로 부를 수 있고, 그 다음 사람은 이전 사람이 부른 수에 이어서 최대 3개까지의 연속된 수를 더 부를 수 있고, 그 다음 사람도 마찬가지로 계속해 나간다.

앞 사람이 1-2-3을 연달아 부르면 다음 사람은 4, 4-5, 4-5-6 중 한 가지 방법으로 부를 수 있다.

그리고 마지막에 31을 부르는 사람은 벌칙을 받게 된다. 배스킨라빈스 31 게임은 때에 따라서 51 또는 다른 수로 바뀌기도 한다.

경기과학고를 졸업하고 대학교 신입생 MT에 참가한 경곽이는 변형 배스킨라빈스 게임에 참여하게 되었고, 마지막에 자신을 포함해서 단 두 명만 남게 되었다.

변형 배스킨라빈스 게임은 이전 사람이 부른 수에 최대 m개의 수 만큼 더 부를 수 있으며, 마지막에 n을 부르면 지게 된다.

앗! 게임을 너무 열심히 하던 경곽이는 다른 사람이 k까지 부른 상황에서 자신에게 턴이 넘어오게 되었다. 경곽이는 그 상태에서 자신이 반드시 게임에 이길 수 있는 방법이 있는지 알고 싶어졌다.

마지막에 부르면 벌칙을 받게 되는 수 n, 각 턴에 부를 수 있는 수의 최대 개수 m, 상대방이 마지막 부른 수 k가 입력될 때, 자신이 반드시 게임에 이길 수 있는 방법이 있는 경우 “yes”, 반드시 이길 수 있는 방법이 전혀 없는 경우 “no”를 출력하는 프로그램을 작성해 보자.

Input

첫 줄에 n, m, k가 공백을 두고 입력된다.

[입력값의 정의역]

1 <= n, m, k <= 100000

Output

반드시 이길 수 있는 방법이 있는 경우 “yes”, 그렇지 않은 경우 “no”를 출력한다.
(따옴표 제외)

IO Example

입력
31 3 27

출력
yes

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python]
Prob Analysis : [Problem Statistics] | [Solution]