CDVII
면접 대비시간 제한1초메모리 제한128 MB
차량별로 enter 기록 바로 뒤에 오는 exit을 짝지어, 출발 시각의 요금으로 거리당 통행료와 수수료를 계산해 정렬된 청구 금액을 달러로 출력한다.
문제
로마의 도로는 오랜 수명과 견고한 공학으로 유명하지만, 견고한 공학에는 비용이 많이 든다. 건설비를 회수하기 위해 CDVII라는 유료 고속도로는 이 도로를 이용하는 모든 차량에 통행료를 부과한다.
요금 체계는 다음과 같다. 도로 주행 요금은 주행한 킬로미터당 일정 금액으로 매겨지며, 그 단가는 주행을 시작한 시각(시간대) 에 따라 달라진다. 모든 진입로와 진출로에 설치된 카메라가 차량이 들어오고 나갈 때마다 번호판을 촬영한다.
달력상의 한 달이 끝날 때마다 등록 소유자에게 차량별로 청구서가 한 장씩 발송된다. 청구서에는 다음이 포함된다.
- 주행한 모든 킬로미터에 대한 통행료(각 주행이 시작된 시간대의 단가를 적용);
- 주행 1회마다 $1; 그리고
- 청구서 자체에 대한 $2의 계정 요금.
한 달 동안 촬영된 모든 번호판 사진이 주어질 때, 그 달의 청구서를 작성하라.
입력
입력은 요금 구조와 사진 기록의 두 부분으로 이루어진다.
첫 번째 줄에는 24개의 음이 아닌 정수가 주어진다. 그중 번째 정수(는 부터 센다)는 시간대 에 시작하는 주행에 적용되는 킬로미터당 통행료(센트 단위) 이다. 즉 첫 번째 값은 00:00~00:59, 두 번째 값은 01:00~01:59에 적용되며, 같은 방식으로 23:00~23:59까지 이어진다.
이후 각 줄은 하나의 사진 기록이며, 공백으로 구분된 네 개의 항목으로 이루어진다.
- 차량의 번호판(영숫자 최대 20자);
- 사진이 찍힌 시각으로
mm:dd:hh:mm형식(월, 일, 시, 분이며 시는 24시간제); - 단어
enter또는exit; 그리고 - 해당 진입 또는 진출 지점의 위치로, 고속도로 한쪽 끝으로부터의 킬로미터.
모든 기록은 한 달 안에 속한다. 한 차량의 주행을 구하려면 그 차량의 기록을 시각 순으로 정렬한 뒤 이른 시각부터 차례로 훑는다. enter 기록 바로 다음에 exit 기록이 오면 이 둘이 하나의 주행을 이루고 두 기록은 이후 고려에서 제외된다. 그 밖의 기록(뒤에 exit가 오지 않는 enter, 또는 맨 앞에 있거나 이미 제외된 기록 뒤에 오는 exit)은 무시된다. 다시 말해, 하나의 enter는 같은 차량의 시각상 바로 다음 기록이 exit일 때에만 그 기록과 짝지어진다. 같은 차량의 두 기록이 같은 시각을 가지는 경우는 없으며, 사진 기록은 최대 1000개이다.
출력
주행을 한 번 이상 완료한 차량마다, 번호판과 공백 한 칸, 그리고 그 달에 청구되는 총액을 한 줄에 출력한다.
금액은 센트 단위로 계산한다. 시간대 에 시작하여 위치 와 사이를 주행하면 요금은 에 시간대 의 단가를 곱한 값(센트)이다. 한 차량의 월 총액은 다음과 같다.
총액은 달러로 출력한다. $ 기호 뒤에 달러의 정수 부분, 소수점, 그리고 센트 정확히 두 자리를 붙인다(예: 총액 1860센트는 $18.60으로 적는다).
번호판을 문자 코드 순으로 비교하여 오름차순으로 차량을 나열한다. 따라서 숫자가 대문자보다, 대문자가 소문자보다 앞선다. 완료한 주행이 없는 차량은 아무 줄도 출력하지 않는다.