본문으로 이동
코드패스 by Devin.KR

문제 3771 · 바이트 III

캠핑장의 두 안내등

인증 제출 통계 · 5분마다 갱신 · 정답 비율 = 정답 제출 / 전체 제출
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1000ms / 테스트 (언어별 보정은 아래 표)메모리: 측정하지 않음(브라우저 채점)0000.00%

문제

캠핑장에는 일직선 산책로를 따라 1번부터 L번까지의 구역이 차례로 놓여 있다. 캠핑장 관리자는 밤에도 이용객이 자기 텐트를 쉽게 찾도록 서로 다른 두 구역에 안내등을 하나씩 설치하려 한다. 안내등을 설치할 수 있는 위치는 구역 번호로만 나타내며, 텐트가 있는 구역에도 안내등을 설치할 수 있다. 두 안내등은 반드시 설치해야 하며, 같은 구역에 두 안내등을 놓을 수는 없다. 모든 안내등의 밝기는 같고, 안내등이 설치된 구역과 번호 차이가 R 이하인 구역을 비춘다. 따라서 a번 구역에 설치한 안내등은 번호가 x인 구역에 대해 |x-a|가 R 이하일 때 그 구역을 비춘다. 산책로 양쪽 끝을 넘어가는 범위는 무시한다. 끝 구역과 처음 구역은 이어져 있지 않으며, 구역 번호의 차이를 그대로 거리로 사용한다. R이 0이면 안내등이 설치된 구역만 밝아진다. 캠핑장에는 N개의 텐트가 있다. 각 텐트가 속한 구역은 입력으로 주어지며, 같은 구역에 여러 텐트가 있을 수 있다. 어느 한 안내등이라도 텐트가 속한 구역을 비추면 그 텐트는 밝아진 텐트로 센다. 두 안내등이 모두 비추는 텐트도 한 번만 센다. 한 구역에 텐트가 여러 개 있다면 그 구역이 밝아질 때 해당 텐트를 모두 센다. 텐트의 입력 순서는 설치 위치를 고르는 데 영향을 주지 않는다. 관리자는 밝아지는 텐트 수가 가장 많아지도록 두 위치를 고른다. 선택한 두 구역을 a<b가 되도록 적었을 때, 최댓값을 만드는 선택이 여러 개라면 a가 가장 작은 선택을 고른다. a까지 같다면 b가 가장 작은 선택을 고른다. 텐트가 하나도 없어도 같은 기준으로 두 위치를 고른다. 설치할 두 구역과 그때 밝아지는 텐트 수를 구하는 프로그램을 작성한다.

입력

첫째 줄에 정수 L, N, R이 공백으로 구분되어 주어진다. 2≤L≤60, 0≤N≤100,000, 0≤R≤L이다.
둘째 줄에 각 텐트가 속한 구역 번호를 나타내는 N개의 정수 x가 공백으로 구분되어 주어진다. 각 x는 1≤x≤L을 만족한다. N이 0이면 둘째 줄은 빈 줄이다.

출력

선택한 두 구역 a, b와 밝아지는 텐트 수를 이 순서대로 한 줄에 공백으로 구분하여 출력한다. 반드시 a<b여야 한다. 밝아지는 텐트 수를 최대로 하고, 동점이면 a가 작은 선택, 그다음 b가 작은 선택을 출력한다.

예제 입력 1

6 5 1
1 2 4 4 6

예제 출력 1

1 5 5

예제 입력 2

4 0 0

예제 출력 2

1 2 0

예제 입력 3

5 6 0
3 3 3 5 5 1

예제 출력 3

3 5 5
힌트 펼치기
  • 같은 구역에 있는 텐트 수를 먼저 세면 각 텐트를 반복해서 확인할 필요가 없다.
  • 서로 다른 두 설치 위치를 모두 조사하고, 각 구역이 어느 한 안내등의 범위에 들어오는지 확인한다.

관련 서재 장

관련 장

출처: Devin.KR 자체 제작

알고리즘 분류완전 탐색배열

풀이 작성

연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.

Python 기본 시간 제한 = 문제 시간 제한 × 3 + 2초. 문제별 예외는 아래 표에 반영됩니다. 표준 라이브러리만 지원합니다.

Ctrl+Enter: 연습 채점 · Tab: 들여쓰기 · Esc 후 Tab: 다음 요소로 이동. 언어별 초안은 이 브라우저에 저장됩니다. JavaScript 입력: require('fs').readFileSync(0, 'utf8'), readline 또는 input().

로그인하면 인증 제출을 사용할 수 있습니다.

풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.

    연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.

    이 브라우저의 연습 기록

      언어별 제한

      테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.

      언어엔진(버전)시간 제한메모리
      javascript사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름)1000ms / 테스트측정하지 않음(브라우저 채점)
      pythonPyodide 314.0.7 (CPython 3.14 WASM)5000ms / 테스트측정하지 않음(브라우저 채점)