미술 달력
시간 제한1초메모리 제한1024 MB
연도와 1월 1일의 요일, 그리고 날짜(또는 Flip)가 주어질 때, 해당 달력 시트의 앞면과 뒷면에 인쇄된 날짜를 출력한다.
문제
달력에는 미술 작품이 실려 있다. 달력은 여러 장의 낱장으로 이루어져 있고, 각 낱장에는 양면에 그림이 하나씩 인쇄되어 있다. 한 해의 각 주에는 여섯 쪽이 배정된다. 월요일부터 금요일까지는 각각 별도의 쪽에 있고, 토요일과 일요일은 한 쪽에 함께 있다. 예를 들어 이 달력에는 날짜 하나가 있는 쪽이 있다:
- 21 November • Friday • 2014
그리고 그다음 두 휴일을 위한 공동 쪽도 있다:
- 22 November • Saturday • 2014
- 23 November • Sunday • 2014
앞선 날짜(또는 날짜들)가 있는 쪽을 낱장의 앞면, 반대쪽을 뒷면이라고 부른다. 낱장은 상반기의 날짜 순서대로 차례로 쌓여 있고, 맨 앞에는 1 January(단독이거나 2 January와 함께) 낱장이 있다. 달력의 날짜는 맨 앞 낱장을 방향을 바꾸지 않고 맨 뒤로 옮겨서 넘긴다. 연초에 마지막이었던 낱장이 맨 앞에 올 때까지 이를 반복한다. 그 낱장의 앞면에는 그림과 날짜 대신 "Flip"이라는 문구가 인쇄되어 있다. 이는 이 낱장도 지금까지처럼 맨 뒤로 옮기고, 낱장 전체를 수직축을 기준으로 180° 회전시켜 방금 맨 뒤로 옮긴 다음 날짜가 적힌 낱장의 뒷면이 맨 앞에 오게 한다는 뜻이다. 하반기의 날짜 전환도 위에서 설명한 방식으로 이루어진다.
주어진 연도, 그해 1월 1일의 요일, 그리고 날짜를 입력받아 해당 낱장의 양면 내용을 결정하는 프로그램 calendar를 작성하시오.
입력
표준 입력의 한 줄에 세 가지 정보가 주어진다:
- 금세기 또는 지난 세기의 연도;
- 그해 1월 1일의 요일;
- 주어진 연도의 날짜를
.형식으로 나타낸 것, 또는Flip이라는 문자열.
참고: 요일은 Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday이다.
출력
표준 출력의 첫째 줄은 "Face:"로 시작하고, 그 뒤에 찾은 낱장의 앞면에 있는 날짜와 요일이 오거나, 찾은 낱장에 "Flip"이 있으면 "Flip"이 온다. 둘째 줄은 "Back:"으로 시작하고, 그 뒤에 찾은 낱장의 뒷면에 있는 날짜와 요일이 온다. 각 정보는 공백 하나로 구분한다. 낱장의 앞면이나 뒷면에 두 날짜가 있을 수 있다(토요일과 일요일은 한 쪽에 있다). 그때는 해당 줄에 Saturday Sunday를 나열한다. 빈 쪽이 있는 낱장의 경우 그 쪽에 대해서는 줄을 출력하지 않는다. 모든 요일과 월은 두 자리로 표기한다.