벌점과 상점

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

문제

어느 지역에서는 운전면허 벌점(demerit point)과 상점(merit point)을 다음 규칙으로 관리한다.

새 운전자는 벌점도 상점도 없이 시작한다. 운전자가 교통 위반으로 유죄 판결을 받으면, 위반의 경중에 따라 2점 이상 15점 이하의 벌점을 받는다.

위반과 벌점이 모두 없는 2년이 지날 때마다 상점이 1점씩, 최대 5점까지 주어진다. 상점 1점은 벌점을 최대 2점까지 상쇄한다. 이후에 위반이 발생하면 다음과 같이 처리한다.

  • 벌점이 상점의 2배보다 크면, 벌점에서 상점의 2배를 빼고 상점을 0으로 만든다.
  • 벌점이 상점의 2배 이하이면, 벌점을 0으로 만들고 상점에서 (벌점 ÷ 2)만큼을 뺀다. 소수점 이하의 상점은 버린다.

운전자가 위반 없이 1년을 보낼 때마다 벌점이 줄어든다. 이때 벌점은 절반 또는 2점 중 더 큰 값만큼 줄어든다. 소수점 이하이거나 음수가 된 벌점은 버린다(0으로 만든다). 이 감소는 벌점이 남아 있는 동안, 가장 최근 위반일의 매 기념일마다 일어난다.

새 위반이 벌점 감소일 또는 상점 부여일과 같은 날에 발생하면, 감소와 부여를 먼저 처리한 뒤에 새 벌점을 부여한다.

한 운전자의 기록이 주어질 때, 벌점 또는 상점이 바뀔 때마다 그 값을 출력하여라.

입력

첫 줄에는 면허 발급일이 yyyymmdd 형식으로 주어진다. 이어지는 각 줄에는 위반 정보가 시간순으로 주어지며, 각 줄은 위반일(yyyymmdd)과 부여된 벌점(2 이상 15 이하의 정수)으로 이루어진다.

출력

면허 발급일, 그리고 벌점 또는 상점의 수가 바뀌는 매 시점마다 아래 형식으로 날짜와 점수를 한 줄에 출력한다. 마지막 위반 이후 상점이 5점에 도달하면 출력을 종료한다.

  • 벌점이 있으면: YYYY-MM-DD N demerit point(s).
  • 상점이 있으면: YYYY-MM-DD N merit point(s).
  • 둘 다 없으면: YYYY-MM-DD No merit or demerit points.