시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 128 MB7371078016.194%

문제

수학에서 등차수열은 두 개의 연속된 숫자의 차이가 항상 일정한 수열이다. 예를 들어, 3 5 7 9 11 13은 차이가 2인 등차수열이다. 등차수열은 An = A0+n*d와 같이 표현할 수 있다.

수열 S가 주어진다. 수열 Si = ⌊Ai+1⌋이다. 그리고, 감소하지 않는 수열이다. ⌊x⌋는 x보다 작거나 같은 정수 중 가장 큰 값이다. 예를 들어 ⌊3.4⌋ = 3, ⌊0.6⌋ = 0, ⌊-1.2⌋ = -2, ⌊-0.6⌋ = 1이다.

수열 A는 A0+i*d와 같이 정의할 수 있다. 가능한 d의 값 중 가장 작은 값을 구하는 프로그램을 작성하시오. d는 0 이상이다.

입력

첫째 줄에 주어지는 수열 S의 개수 N과 A0이 주어진다. 둘째 줄에 S0부터 SN-1까지 주어진다. N은 0보다 크거나 같고, 50보다 작거나 같은 정수이고, 나머지 수는 모두 절댓값이 106보다 작거나 같은 정수이다. N이 0인 경우 둘째 줄은 주어지지 않는다.

출력

첫째 줄에 가능한 d중 최솟값을 출력한다. 절대/상대 오차는 10-9까지 허용한다. 만약, 그러한 것이 없을 때는 -1을 출력한다.

예제 입력 1

4 0
6 13 20 27

예제 출력 1

6.75

예제 입력 2

5 1
2 3 4 5 6

예제 출력 2

1.0

예제 입력 3

0 3

예제 출력 3

0.0

예제 입력 4

5 3
3 3 3 3 4

예제 출력 4

0.2

예제 입력 5

1 1
-3

예제 출력 5

-1

예제 입력 6

2 0
6 14

예제 출력 6

-1

출처

  • 문제를 번역한 사람: baekjoon
  • 문제의 오타를 찾은 사람: bupjae