만드는 중입니다

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

Project Panoptes

면접 대비

시간 제한2초메모리 제한512 MB

요약
n일간의 밝기 값과 하한 p가 주어질 때, 어떤 시작일에서 공차 k로 등차수열을 따라가면 모두 어두운 날(평균의 0.8배 미만)이 되는 최소 k를 구하고, 없으면 -1을 출력한다.
난이도

보통10점 중 5점

유형
배열, 완전 탐색, 구현, 수학
정답자
아직 제출이 없습니다

문제

Project Panoptes는 값싼 로봇 망원경으로 관측 자료를 모아 태양계 밖의 행성, 곧 외계 행성을 찾는 프로젝트다. 이 문제에서는 망원경 관측값에서 외계 행성 후보를 골라내는 간단한 프로그램을 만든다.

망원경은 별 하나의 밝기를 하루에 한 번 기록한다. 밝기가 줄어든 날은 별 앞으로 행성이 지나갔을 가능성이 있는 날이다. 밝기가 줄어든 날이 일정한 간격으로 되풀이되면 그 별은 외계 행성을 가진 후보가 된다.

관측일에 1일부터 nn일까지 번호를 붙이고, ii일의 밝기를 xix_i라고 하자. 전체 평균을 m=(x1+⋯+xn)/nm = (x_1 + \dots + x_n) / n이라고 할 때 xi<0.8mx_i < 0.8m인 날을 어두워진 날이라고 부른다. 부등호는 엄격하다. 밝기가 평균의 80%와 정확히 같은 날은 어두워진 날이 아니다.

정수 kk가 주기라는 것은 다음 두 조건이 모두 성립한다는 뜻이다.

  • k≥pk \ge p
  • 1≤s≤k1 \le s \le k이고 s+k≤ns + k \le n인 시작일 ss가 있어서, s,s+k,s+2k,…s, s+k, s+2k, \dots 중 nn 이하인 모든 날이 어두워진 날이다.

둘째 조건은 두 가지를 뜻한다. 주기에는 어두워진 날이 적어도 두 번 나타나야 하므로 kk는 n−1n-1을 넘지 않는다. 그리고 부분집합만으로는 부족하다. 4일, 7일, 10일이 어두워졌다고 해도 k=3k = 3, s=1s = 1이 주기가 되려면 1일과 13일까지 어두워져 있어야 한다.

가능한 주기 중 가장 작은 값을 구한다.

입력

첫 줄에 정수 nn과 pp가 주어진다. (2≤n≤10002 \le n \le 1000, 1≤p≤n−11 \le p \le n-1) nn은 관측 횟수, pp는 고려할 가장 작은 주기다.

다음 nn개의 줄에 그날의 밝기 xx가 한 줄에 하나씩 주어진다. (0.0≤x≤100.00.0 \le x \le 100.0) 밝기는 실수이고 날짜 순서대로 주어진다.

출력

조건을 만족하는 가장 작은 주기를 출력한다. 그런 주기가 없으면 -1을 출력한다.

예제5

  1. 예제 1

    입력
    15 2
    20.6
    21.0
    23.2
    12.0
    17.5
    22.2
    4.8
    25.9
    13.0
    12.2
    10.8
    22.9
    30.4
    8.6
    24.9
    
    예상 출력
    5
    
  2. 예제 2

    입력
    15 6
    20.6
    21.0
    23.2
    12.0
    17.5
    22.2
    4.8
    25.9
    13.0
    12.2
    10.8
    22.9
    30.4
    8.6
    24.9
    
    예상 출력
    6
    
  3. 예제 3

    입력
    2 1
    0.0
    0.0
    
    예상 출력
    -1
    
  4. 예제 4

    입력
    6 1
    100.0
    1.0
    100.0
    1.0
    100.0
    1.0
    
    예상 출력
    2
    
  5. 예제 5

    입력
    5 1
    10.0
    10.0
    10.0
    10.0
    10.0
    
    예상 출력
    -1