세금 메모 XML 변환

시간 제한1초메모리 제한128 MB

문제

칼리이의 세금 계약은 관료가 적은 속기 메모로 남는다. 각 메모에는 세율, 계약 종료 월/연도, 새 계약 시작 월/일이 들어 있다. 종료일의 일자는 항상 15일이고, 시작일의 연도는 2003년 11월 9일을 기준으로 정한다. 시작 월/일이 11월 9일 이후이면 2003년, 그보다 앞서면 2004년으로 본다.

각 입력 줄의 속기 메모를 해석해 XML로 출력하는 프로그램을 작성하시오. 메모가 잘못되었거나 둘 이상의 해석이 가능하면 그 줄은 잘못된 데이터로 처리한다.

입력

입력은 여러 데이터 세트로 이루어지며, 한 줄이 한 데이터 세트이다. 올바른 줄은 다음 세 필드를 이 순서로 포함한다. 필드 사이에는 공백이 0개 이상 올 수 있다.

  1. 세율

    • 정수 세율은 숫자 뒤에 %를 붙인다.
    • 소수점은 사용할 수 없다.
    • 분수가 포함될 수 있다. / 바로 앞의 한 자리가 분자이고, 그 앞의 숫자들은 정수 부분이다. 분모는 2, 4, 8 중 하나이며 분자는 분모보다 작아야 한다.
    • 최대 세율은 99.875%이다.
  2. 계약 종료 날짜

    • 월은 한 자리 또는 두 자리, 연도는 두 자리이다.
    • 월과 연도 사이에 하이픈 하나가 있을 수도 있다.
    • 종료일의 일자는 항상 15일이다.
  3. 계약 시작 날짜

    • 월은 한 자리 또는 두 자리, 일은 두 자리이다.
    • 월과 일 사이에 하이픈 하나가 있을 수도 있다.
    • 모든 달은 31일까지 있다.

출력

각 데이터 세트마다 인덱스는 1부터 시작한다. 올바른 데이터는 다음 형식으로 출력한다. 들여쓰기 한 단계는 공백 4개이다.

<Kalii Index=N>
    <startdate>(start date)</startdate>
    <rate>(tax rate)</rate>
    <enddate>(end date)</enddate>
</Kalii>

(start date)DDMMMYY, (end date)15MMMYY 형식이다. DD는 01부터 31까지의 일, MMMJAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC 중 하나, YY는 연도의 마지막 두 자리이다. 세율은 소수점 아래 세 자리까지 출력한다.

데이터가 잘못되었거나 모호하면 다음 한 줄을 출력한다.

<Kalii Index=N>BAD DATA</Kalii>