문제 3049 · 비트 V
마지막 예약이 끝나는 시각
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 병원은 같은 검사실을 사용하는 예약들을 한 묶음으로 배정한다. 한 묶음에 포함된 사람은 정해진 순서대로 한 명씩 검사를 받는다. 첫 번째 사람의 검사는 기준 날짜의 H시 M분에 시작한다. 모든 사람의 검사 시간은 똑같이 T분이며, 검사 도중에 쉬거나 검사 시간을 줄이는 일은 없다. 검사실은 한 사람의 검사가 끝날 때마다 다음 사람을 위해 정리해야 한다. 정리에는 정확히 G분이 걸리고, 정리가 끝나는 즉시 다음 사람의 검사가 시작된다. 첫 번째 검사가 시작되기 전에는 별도의 정리 시간이 필요하지 않다. 또한 마지막 사람의 검사가 끝난 뒤에 하는 정리는 예약 묶음의 종료 시각에 포함하지 않는다. 따라서 예약자가 한 명뿐이라면 정리 시간은 종료 시각에 영향을 주지 않는다. 담당자는 예약자가 모두 검사를 마치는 시각을 안내판에 표시하려 한다. 검사와 정리는 자정을 지나도 중단되지 않으며, 날짜가 바뀌었다고 해서 예약 순서나 소요 시간이 달라지지 않는다. 하루는 정확히 24시간이고, 한 시간은 정확히 60분이다. 모든 시간은 분 단위로 주어지므로 초 단위 계산이나 반올림은 필요하지 않다. 기준 날짜를 0일째라고 하고, 그다음 날짜를 1일째라고 한다. 마지막 검사가 끝난 날짜와 그날의 시각을 구해야 한다. 예를 들어 기준 날짜의 다음 날 0시 5분에 끝났다면 날짜는 1, 시는 0, 분은 5로 나타낸다. 정확히 자정에 끝났다면 새로 시작한 날짜의 0시 0분으로 나타낸다. 예약자 수 N과 시작 시각, 검사 시간, 정리 시간이 주어질 때 마지막 검사가 끝나는 날짜와 시각을 구하는 프로그램을 작성한다.
입력
첫째 줄에 정수 H, M, N, T, G가 공백으로 구분되어 주어진다. 0 ≤ H ≤ 23, 0 ≤ M ≤ 59이다. 1 ≤ N ≤ 1,000, 1 ≤ T ≤ 60, 0 ≤ G ≤ 30이다. H와 M은 기준 날짜의 첫 검사 시작 시각이며, N은 예약자 수, T는 한 사람의 검사 시간, G는 연속한 두 검사 사이의 정리 시간이다.
출력
마지막 검사가 끝나는 날짜 D, 시 h, 분 m을 공백으로 구분하여 한 줄에 출력한다. D는 기준 날짜로부터 지난 날짜 수이며, 0 ≤ h ≤ 23, 0 ≤ m ≤ 59를 만족해야 한다. 각 수는 앞에 불필요한 0을 붙이지 않은 정수로 출력한다.
예제 입력 1
9 20 3 15 5
예제 출력 1
0 10 15
예제 입력 2
23 40 2 20 10
예제 출력 2
1 0 30
예제 입력 3
23 0 1 60 30
예제 출력 3
1 0 0
힌트 펼치기
- 검사 시간은 N번 더하지만, 검사 사이의 정리 시간은 N-1번 더한다.
- 시작 시각을 분으로 바꾸어 계산한 뒤 날짜, 시, 분으로 나눈다.
관련 서재 장
알고리즘 분류
사칙연산풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |