문제
자취 년 차 한별이는 슬슬 냉장고에 있는 음식들의 유통기한이 지나지 않았을지 걱정이다. 그러나 유통기한으로 적혀 있는 날짜의 연도/월/일 순서를 알 수 없어서 고민하고 있다.
날짜를 표기하는 방법은 국가에 따라 다르며, 크게 세 가지 방법이 있다.
- 연도/월/일: 대한민국, 일본, 중국, 리투아니아, 몽골, 부탄, 헝가리 등 동아시아권 국가
- 일/월/연도: 그리스, 네덜란드, 덴마크, 독일, 러시아, 말레이시아, 멕시코, 방글라데시, 베트남, 불가리아, 사우디아라비아, 아르헨티나, 아이슬란드, 이집트, 이스라엘, 이탈리아, 인도네시아, 체코, 칠레, 콜롬비아, 태국, 포르투갈 등 대부분의 국가
- 월/일/연도: 미국, 괌, 필리핀 등 일부 영어권 국가
따라서 예를 들어 10/12/32라는 날짜는
- 일/월/연도로 해석할 경우 년 월 일
- 월/일/연도로 해석할 경우 년 월 일
중 하나가 된다. 월 일이라는 날짜는 없으므로 적어도 연도/월/일 형식(년 월 일)은 아니라는 것을 알 수 있다.
한별이는 냉장고 음식들의 유통기한을 보고 세 가지 방법 중 유효한 날짜로 해석 가능한 어떤 형식으로 해석해도 음식이 안전한지 알고 싶다. 한별이를 도와 음식이 안전한지 판단하는 프로그램을 작성해 보자.
입력
첫 번째 줄에 오늘 날짜를 나타내는 정수 , , 가 공백으로 구분되어 주어진다. 이는 오늘이 년 월 일이라는 것을 의미한다. (, 년 월 일은 올바른 날짜)
다음 줄에는 냉장고의 음식의 개수 이 주어진다. ()
다음 개의 줄에는 각 줄마다 음식의 유통기한을 나타내는 정수 , , 가 공백으로 구분되어 주어진다. 음식에는 유통기한이 //의 형식으로 적혀 있다. ()
모든 날짜는 년에서 년 사이이며, 연도는 으로 나눈 나머지만이 주어진다.
출력
각 날짜마다 한 줄에 하나씩 다음 중 한 가지를 출력한다.
invalid: 어떤 형식으로 해석해도 올바르지 않은 날짜인 경우
safe: 해석 가능한 모든 형식에 대해 오늘 날짜가 유통기한보다 이전이거나 같은 날일 경우
unsafe: 나머지 경우
힌트
월, 월, 월, 월, 월, 월, 월은 각각 일까지 있다.
월, 월, 월, 월은 각각 일까지 있다.
월은 윤년인 경우 일, 윤년이 아닌 경우 일까지 있다. 문제에서 주어지는 연도에 한정할 경우, 로 나누어떨어지는 연도는 모두 윤년이다.
예제 입력 1 복사
22 11 26
4
22 11 30
22 11 31
22 12 1
22 22 22
예제 출력 1 복사
safe
safe
unsafe
invalid