문제 3728 · 바이트 V
보충 수업의 연습 시간
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 학원에서는 보충 수업에 사용할 연습 문제를 기초형과 심화형으로 나누어 준비한다. 담당 강사는 학생들이 문제를 푸는 데 사용할 전체 시간을 미리 계산하여 수업 계획표에 적으려고 한다. 기초형 문제 하나의 예상 풀이 시간은 A분이고, 심화형 문제 하나의 예상 풀이 시간은 B분이다. 같은 유형의 문제는 모두 같은 시간이 걸리는 것으로 계산한다. 이번 수업에는 두 유형을 합하여 정확히 N개의 문제를 넣어야 한다. 각 유형의 문제는 필요한 만큼 준비되어 있으므로 문제의 개수 때문에 특정 구성을 선택하지 못하는 일은 없다. 한 유형만 사용하는 것도 허용한다. 심화형 문제를 x개 넣으면 기초형 문제는 N-x개가 되고, 전체 예상 풀이 시간은 A×(N-x)+B×x분이다. 여기서 x는 0 이상 N 이하의 정수여야 한다. 강사가 정한 목표 시간은 T분이다. 전체 예상 풀이 시간과 목표 시간의 차이의 절댓값이 가장 작은 구성을 선택해야 한다. 목표 시간보다 짧은 구성과 긴 구성 사이에는 우선순위가 없으며, 오직 차이의 절댓값만 비교한다. 차이가 같은 구성이 여러 개라면 심화형 문제의 개수가 가장 적은 구성을 선택한다. 기초형과 심화형의 예상 풀이 시간이 같을 때도 이 동점 규칙을 그대로 적용한다. 예를 들어 목표 시간을 정확히 맞출 수 있다면 차이는 0분이므로, 차이가 양수인 구성보다 항상 우선한다. 목표 시간을 정확히 맞출 수 없더라도 반드시 가능한 구성 중 하나를 선택해야 한다. 문제를 푸는 순서는 예상 풀이 시간에 영향을 주지 않으며, 쉬는 시간이나 설명 시간은 계산에 포함하지 않는다. N이 0이면 문제를 하나도 넣지 않는 구성이 유일하고 전체 예상 풀이 시간은 0분이다. 주어진 조건에 따라 선택되는 심화형 문제의 개수와 그 구성의 전체 예상 풀이 시간을 구하는 프로그램을 작성한다.
입력
첫째 줄에 정수 N, A, B, T가 공백으로 구분되어 주어진다. 0 ≤ N ≤ 100,000이다. 1 ≤ A, B ≤ 1,000이다. 0 ≤ T ≤ 100,000,000이다.
출력
선택된 심화형 문제의 개수와 전체 예상 풀이 시간을 차례대로 공백으로 구분하여 한 줄에 출력한다. 가능한 구성은 항상 존재하며, 동점 규칙에 따라 답은 하나로 결정된다.
예제 입력 1
5 4 7 25
예제 출력 1
2 26
예제 입력 2
3 2 6 8
예제 출력 2
0 6
예제 입력 3
0 8 3 15
예제 출력 3
0 0
힌트 펼치기
- 심화형 문제의 개수를 0부터 N까지 하나씩 정하여 전체 시간을 비교한다.
관련 서재 장
알고리즘 분류
완전 탐색수학풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |