달력 놀이

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

상범이와 민균이는 올해에도 세계 커플 프로그래밍 대회에 출전한다. 대회 전날 밤, 두 사람은 기념으로 달력 놀이를 하며 밤을 지새웠다.

달력 놀이는 1900년 1월 1일부터 2001년 11월 4일까지의 날짜로 이루어진 달력 위에서, 이 구간의 임의의 한 날짜에서 시작한다. 상범이가 먼저 두고, 이후 상범 → 민균 → 상범 → 민균 → … 순서로 번갈아 가며 다음 두 가지 이동 중 하나를 선택한다.

  1. 현재 날짜의 바로 다음 날로 이동한다.
  2. 다음 달에서 현재와 같은 '일'을 갖는 날짜로 이동한다. 단, 다음 달에 그 '일'이 실제로 존재할 때에만 선택할 수 있다.

예를 들어 현재 날짜가 1924년 12월 19일이면 1924년 12월 20일 또는 1925년 1월 19일로 이동할 수 있지만, 현재 날짜가 2001년 1월 31일이면 2월에는 31일이 없으므로 2001년 2월 1일로 이동하는 방법만 가능하다.

2001년 11월 4일에 먼저 도착한 플레이어가 승리한다. 만약 어떤 이동으로 인해 이 날짜를 지나치게 되면, 그 이동을 한 플레이어가 패배한다.

시작 날짜가 주어졌을 때, 선 플레이어인 상범이에게 항상 이기는 방법(필승 전략)이 존재하는지 판정하는 프로그램을 작성하여라.

이 달력에도 윤년이 존재한다. 어떤 해가 윤년인지는 다음 규칙으로 판단한다. 연도가 4로 나누어떨어지면 윤년이지만, 100으로 나누어떨어지는 해는 윤년이 아니며, 그중에서도 400으로 나누어떨어지는 해는 다시 윤년이다. 윤년의 2월은 29일까지 있고, 평년의 2월은 28일까지 있다.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. 이어지는 TT개의 줄에는 각각 하나의 시작 날짜가 YYYY MM DD 형식으로 주어진다. YYYY는 연도, MM은 월, DD는 일을 뜻한다. 예를 들어 2001 11 04는 2001년 11월 4일을 의미한다. 모든 시작 날짜는 1900년 1월 1일부터 2001년 11월 4일까지의 유효한 날짜이다.

출력

각 테스트 케이스마다 한 줄에 하나씩, 상범이에게 필승 전략이 존재하면 YES를, 존재하지 않으면 NO를 출력한다.