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

문제 3856 · 바이트 V

충전소의 공통 점검 간격

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

문제

전기차 충전소에는 서로 다른 주기로 작동 상태를 기록하는 충전기 N대가 있다. 모든 충전기는 시각 0분에 함께 기록을 남긴다. i번 충전기의 기록 주기가 A_i분이면 이후에는 A_i분, 2A_i분, 3A_i분과 같이 A_i의 양의 정수배인 시각마다 기록을 남긴다. 기록 주기는 작업 중에 바뀌지 않는다. 관리자는 충전기들의 기록을 모으는 점검 작업을 별도로 설정하려 한다. 점검 간격을 정수 d분으로 정하면 점검은 시각 0분부터 시작하여 d분, 2d분, 3d분마다 이루어진다. 이때 모든 충전기가 기록을 남기는 모든 시각이 반드시 점검 시각에도 포함되어야 한다. 어떤 점검 시각에 새 기록을 남기는 충전기가 하나도 없는 것은 허용된다. 즉, 점검할 때마다 모든 충전기가 동시에 기록을 남길 필요는 없다. 예를 들어 기록 주기가 12분인 충전기 하나를 생각하면 점검 간격 3분은 그 충전기의 모든 기록 시각을 포함한다. 반면 점검 간격 5분은 시각 12분의 기록을 포함하지 못하므로 사용할 수 없다. 여러 충전기가 있으면 이 조건을 각각의 충전기에 모두 만족해야 한다. 충전기의 기록 시각을 앞뒤로 옮기거나 일부 기록을 건너뛰는 것은 허용되지 않는다. 관리자가 설정할 수 있는 점검 간격의 범위는 L분 이상 R분 이하이며, 양 끝값도 범위에 포함된다. 관리자는 조건을 만족하는 간격 중 가장 큰 값을 선택하여 불필요한 점검 횟수를 줄이려 한다. 가능한 간격이 여러 개여도 가장 큰 정수 하나만 답으로 사용한다. 범위 안에 조건을 만족하는 정수가 하나도 없다면 -1을 출력한다. 실제 기록 시각들을 끝없이 나열하지 않고, 주어진 주기들을 이용하여 선택할 간격을 구한다.

입력

첫째 줄에 충전기 수 N과 점검 간격의 하한 L, 상한 R이 공백으로 주어진다. 세 값은 정수이며 1≤N≤30,000, 1≤L≤R≤1,000,000,000이다.
둘째 줄에 각 충전기의 기록 주기인 정수 A_1, A_2, …, A_N이 공백으로 주어진다. 모든 i에 대하여 1≤A_i≤1,000,000,000이다. 모든 시간의 단위는 분이다.

출력

모든 충전기의 모든 기록 시각을 포함할 수 있는 정수 점검 간격 중 L 이상 R 이하인 최댓값을 출력한다. 가능한 간격이 없으면 -1을 출력한다.

예제 입력 1

4 4 10
24 48 72 120

예제 출력 1

8

예제 입력 2

3 7 10
18 30 42

예제 출력 2

-1

예제 입력 3

1 12 20
36

예제 출력 3

18
힌트 펼치기
  • 점검 간격은 모든 기록 주기를 나누어떨어지게 해야 한다.
  • 모든 주기의 최대공약수를 구한 뒤, 그 약수 중 범위에 들어가는 최댓값을 찾는다.

관련 서재 장

관련 장

출처: 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 / 테스트측정하지 않음(브라우저 채점)