문제 4383 · 바이트 III
버스 노선 계수 패킷
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
버스의 승차 계수 장치는 문이 닫힐 때마다 이번에 새로 탄 승객 수를 패킷으로 보낸다. 네트워크 수신 프로그램을 맡은 개발자는 수집된 패킷에서 특정 노선과 운행 방향에 해당하는 기록만 집계하려 한다. 하나의 입력 기록은 16비트 자료값 W와 8비트 검사값 C로 이루어진다. 두 값은 입력에서 모두 음수가 아닌 십진 정수로 표현된다. W의 비트 번호는 가장 오른쪽 비트가 0번이고 가장 왼쪽 비트가 15번이다. 15번과 14번 비트는 버전 번호를 나타낸다. 13번부터 8번까지의 여섯 비트는 노선 번호를 나타낸다. 7번 비트는 운행 방향을 나타내며 0은 정방향, 1은 역방향이다. 6번부터 0번까지의 일곱 비트는 해당 기록의 신규 승차 인원이다. 여러 비트로 이루어진 필드는 왼쪽 비트를 높은 자리로 해석한 부호 없는 이진 정수이다. 검사값을 확인할 때는 W의 상위 8비트를 정수 H로, 하위 8비트를 정수 L로 해석한다. 정상 검사값은 H, L, 십진수 90을 비트 단위 배타적 논리합한 값이다. 배타적 논리합은 대응하는 두 비트가 다를 때만 결과 비트가 1이 되는 연산이며, 세 값에 차례로 적용한다. 검사값 C가 정상 검사값과 같고, 버전 번호가 1이며, 노선 번호가 0이 아닌 기록만 유효하다. 이 조건 중 하나라도 어기면 해당 기록 전체를 버린다. 유효한 기록 중 지정한 노선 R과 방향 D가 모두 일치하는 기록의 수와 신규 승차 인원의 합을 구한다. 신규 승차 인원이 0인 기록도 조건을 만족하면 기록 수에 포함한다. 내용이 완전히 같은 기록이 여러 번 들어와도 각각 별도의 계수 결과이므로 모두 처리한다. 집계 대상 기록이 하나도 없으면 기록 수와 인원 합은 모두 0이다.
입력
첫째 줄에 기록 수 N, 집계할 노선 R, 집계할 방향 D가 공백으로 구분되어 주어진다. 모두 정수이며 1≤N≤20,000, 1≤R≤63, 0≤D≤1이다. 다음 N개 줄에 자료값 W와 검사값 C가 공백으로 구분되어 주어진다. 두 값은 정수이며 0≤W≤65,535, 0≤C≤255이다. 유효하지 않은 패킷도 입력될 수 있다.
출력
유효하면서 노선과 방향이 집계 조건에 일치하는 기록 수와 해당 기록의 신규 승차 인원 합을 공백으로 구분하여 한 줄에 출력한다. 집계 대상이 없으면 0 0을 출력한다.
예제 입력 1
6 5 1 17802 149 17792 159 17673 22 34179 92 17801 0 16514 152
예제 출력 1
2 10
예제 입력 2
3 2 0 16899 27 16899 27 16903 31
예제 출력 2
3 13
예제 입력 3
2 1 0 0 90 16641 0
예제 출력 3
0 0
힌트 펼치기
- 시프트 연산과 비트 마스크로 각 필드를 분리할 수 있다.
- 검사값과 유효성 조건을 먼저 확인한 뒤 집계 조건을 적용한다.
알고리즘 분류
비트 연산구현패킷 파싱풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |