문제 4681 · 킬로 IV
지하철 이용 내역 정산
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
지하철 정산 서버는 카드별 이용 내역을 순서대로 처리하여 최종 청구액을 계산한다. 각 내역에는 카드 번호, 이용 시각, 이동 거리가 기록되어 있다. 이용 시각은 공통 기준 시점부터 지난 분 수이며, 시각 T가 속한 날짜 번호는 T를 1440으로 나눈 몫이다. 각 내역은 하나의 완료된 이용을 나타내며, 별도의 승차 시각이나 하차 시각은 계산에 사용하지 않는다. 먼저 이동 거리에 따른 기본 요금을 구한다. 거리가 5 이하이면 기본 요금은 1000원이다. 5를 초과하는 부분은 5 단위마다 200원을 더하며, 남는 거리가 있으면 한 단위를 추가한 것으로 계산한다. 예를 들어 거리가 6이면 1200원이고, 10이면 1200원이며, 11이면 1400원이다. 그다음 환승 할인을 적용한다. 같은 카드의 바로 이전 이용 내역이 같은 날짜에 있고, 현재 이용 시각과 이전 이용 시각의 차이가 30분 이하이면 기본 요금에서 300원을 뺀다. 날짜가 달라지면 시각 차이가 작아도 할인하지 않는다. 할인 여부는 이전 내역에서 실제로 돈을 냈는지와 관계없이 판단하며, 현재 내역은 처리 후 그 카드의 바로 이전 내역이 된다. 카드마다 날짜별로 세금 부과 전 실제 요금의 합계가 5000원을 넘지 않도록 제한한다. 할인 후 요금과 그날 남은 한도 중 작은 값을 현재 내역의 실제 요금으로 정한다. 한도를 이미 모두 사용했다면 실제 요금은 0원이다. 마지막으로 현재 실제 요금의 10퍼센트에서 소수 부분을 버린 금액을 세금으로 더한다. 세금은 일일 한도에 포함하지 않으며 내역마다 따로 계산한다. 입력된 모든 내역은 이용 시각의 오름차순으로 주어진다. 시각이 같으면 입력 순서대로 처리한다. 각 카드의 실제 요금과 세금을 모두 합산한 최종 청구액을 카드 번호의 오름차순으로 출력한다.
입력
첫째 줄에 이용 내역 수 N이 주어진다. 다음 N개 줄에 카드 번호 C, 이용 시각 T, 이동 거리 L이 공백으로 주어진다. 모든 입력값은 정수이며, 1 ≤ N ≤ 20,000, 1 ≤ C ≤ 999, 0 ≤ T ≤ 1,439,999, 1 ≤ L ≤ 100이다. 입력 전체에서 T는 감소하지 않는다. 같은 카드와 같은 시각을 가진 내역도 각각 별개의 이용으로 처리한다.
출력
첫째 줄에 입력에 등장한 서로 다른 카드 수 K를 출력한다. 다음 K개 줄에 카드 번호와 해당 카드의 최종 청구액을 공백으로 구분하여 출력한다. 카드 번호의 오름차순으로 출력하며, 모든 금액의 단위는 원이다.
예제 입력 1
5 2 0 5 1 10 6 2 30 11 2 61 5 1 1440 5
예제 출력 1
2 1 2420 2 3410
예제 입력 2
4 9 1430 100 9 1430 5 9 1440 5 9 1470 6
예제 출력 2
1 9 7590
예제 입력 3
3 4 0 6 4 30 5 4 61 5
예제 출력 3
1 4 3190
힌트 펼치기
- 카드마다 마지막 이용 시각, 현재 날짜의 실제 요금 합계, 전체 청구액을 저장한다.
- 환승 할인, 일일 한도, 세금의 적용 순서를 지킨다.
알고리즘 분류
구현해시시뮬레이션풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |