문제 3018 · 비트 V
생산 라인의 두 계량판
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 공장 생산 라인에서는 두 종류의 재료를 작은 상자에 담아 하나의 작업 묶음으로 보낸다. 작업 묶음이 다음 공정으로 이동하기 전에, 두 상자를 각각 계량판에 올려 재료의 질량을 확인한다. 첫 번째 상자의 측정값은 A이고 두 번째 상자의 측정값은 B다. 상자의 무게는 이미 제외되어 있으며, 모든 측정값의 단위는 그램이다. 검사 장치는 두 가지 기준을 정해진 순서로 확인한다. 먼저 두 측정값의 차이가 허용 차이 D 이내인지 확인한다. 여기서 차이는 큰 측정값에서 작은 측정값을 뺀 값이다. 차이가 D보다 크면 두 재료의 균형을 다시 맞추어야 하므로 검사 결과를 0으로 정한다. 이 경우에는 두 측정값의 합이 얼마인지와 관계없이 검사를 끝낸다. 첫 번째 기준을 통과한 작업 묶음에 대해서만 두 번째 기준을 확인한다. 두 측정값의 합이 최소 필요 질량 P보다 작으면 재료를 더 담아야 하므로 검사 결과를 1로 정한다. 합이 P 이상이면 다음 공정에 보낼 수 있으므로 검사 결과를 2로 정한다. 두 측정값의 차이가 정확히 D인 경우에는 첫 번째 기준을 통과하며, 합이 정확히 P인 경우에는 두 번째 기준을 통과한다. 측정값이 0인 상자도 같은 규칙으로 검사한다. 재료의 균형과 총질량이 모두 기준에 맞지 않는 경우에는 먼저 확인하는 균형 기준에 따라 결과가 0이 된다. 검사 도중 재료를 옮기거나 측정값을 바꾸는 일은 없다. 주어진 한 작업 묶음에 대해 검사 장치가 정할 결과 번호를 구하는 프로그램을 작성한다.
입력
첫째 줄에 정수 A, B, D, P가 공백으로 구분되어 주어진다. 0 ≤ A, B, D ≤ 1,000이며 1 ≤ P ≤ 1,000이다.
출력
검사 결과에 해당하는 정수 0, 1, 2 중 하나를 한 줄에 출력한다. 두 측정값의 차이가 D보다 크면 0, 그렇지 않고 합이 P보다 작으면 1, 나머지 경우에는 2를 출력한다.
예제 입력 1
20 70 10 200
예제 출력 1
0
예제 입력 2
35 40 5 80
예제 출력 2
1
예제 입력 3
48 52 4 100
예제 출력 3
2
힌트 펼치기
- 두 측정값의 차이는 절댓값으로 구할 수 있다.
- 균형 기준을 먼저 확인하고, 통과한 경우에만 합을 확인한다.
관련 서재 장
알고리즘 분류
조건문사칙연산풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |