만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

케이블카 대기 줄

면접 대비

시간 제한1초메모리 제한1024 MB

요약
매 분 도착하는 사람 수와 케이블카 정원 c가 주어질 때, 대기 시간이 가장 짧은 도착 시각을 찾습니다. 탈 수 없으면 impossible을 출력합니다.
난이도

보통10점 중 5점

유형
배열, 누적 합, 이분 탐색
정답자
아직 제출이 없습니다

문제

당신은 알프스로 스키 여행을 가서 케이블카를 타야 한다.[1] 그런데 산 정상으로 올라가는 케이블카 앞에는 보통 긴 줄이 늘어서 있다. 아침에 시간 낭비하는 것을 싫어하는 당신은 대기 시간이 최소가 되도록 줄을 설 가장 좋은 시점을 찾고 싶다.

케이블카 승강장은 하루에 nn분 동안 열려 있다. 케이블카 한 대는 한 번에 cc명을 태우며, 매분 정확히 한 대가 출발한다. 오늘 승강장이 열려 있는 매 분마다 도착하는 사람 수를 알고 있다.

당신은 다른 사람들과 마찬가지로 승강장이 열려 있을 때, 분의 시작 시점에 도착한다. 사교적인 성격이라서 같은 분에 도착한 사람이 있으면 그들을 먼저 보내고 나서 줄에 선다.

대기 시간이 최소가 되는 도착 시점을 계산하라. 오늘 케이블카를 탈 수 없다면 그렇게 판단하면 된다. 최소 대기 시간을 갖는 시점이 두 개면 더 이른 시점을 답한다.

1 케이블카는 가파른 경사면에 놓인 케이블 철도의 한 종류로, 균형을 이루는 두 차량이 선로 윗부분의 도르래를 거쳐 돌아가는 견인 케이블의 양 끝에 하나씩 연결되어 있다.

입력

입력은 다음과 같다.

  • 첫 줄에 두 정수 nn과 cc가 주어진다 (1≤n≤1051 \leq n \leq 10^5, 1≤c≤1091 \leq c \leq 10^9). nn은 오늘 케이블카가 운행하는 시간(분)이고, cc는 케이블카 한 대가 매분 산 위로 태우는 사람 수다.
  • 둘째 줄에 nn개의 정수 a0,…,an−1a_0, \dots, a_{n-1} (0≤ai≤1090 \leq a_i \leq 10^9)이 주어진다. aia_i는 승강장이 열리고 ii분 뒤에 새로 나타나는 사람 수다.

출력

오늘 케이블카를 탈 수 없으면 impossible을 출력한다. 그렇지 않으면 대기 시간이 최소가 되도록 줄을 서야 하는, 개장 시각으로부터의 가장 작은 분 수를 출력한다.

예제3

  1. 예제 1

    입력
    5 1
    5 0 0 0 0
    
    예상 출력
    impossible
    
  2. 예제 2

    입력
    5 4
    8 6 4 2 0
    
    예상 출력
    0
    
  3. 예제 3

    입력
    10 10
    12 11 10 9 8 7 6 5 4 3
    
    예상 출력
    5