카드 바꾸기

아직 제출이 없습니다시간 제한1.5초메모리 제한1024 MB

문제

NN개의 카드가 놓여있다. 편의상 가장 왼쪽에 있는 카드를 11번 카드, 그 다음에 있는 카드를 22번 카드 \dots, 가장 오른쪽에 있는 카드가 NN번 카드라고 하자.

NN개의 카드에는 각각 정수가 하나씩 적혀있다. ii번 카드에 적혀있는 수를 x_ix\_i라고 하자.

NN개의 카드 중 일부에 적혀있는 수들을 적절히 바꾸어서, 왼쪽에서 오른쪽으로 갈수록 카드에 적혀있는 수들이 일정하게 증가하거나, 감소하거나, 또는 모든 수들이 같도록 하고 싶다.

카드에 적혀있는 수들을 바꿀 때는 정수 값으로만 바꿀 수 있으며, 바꾸는 횟수를 최소화해야 한다.

예를 들어, 아래의 그림과 같이 카드들이 주어졌다고 하자.

이 경우 33번 카드에 적혀있는 수를 33으로 바꾸면 아래와 같이 11씩 증가하도록 할 수 있고, 적혀있는 수를 바꾼 카드의 수는 11개이다.

다음과 같이 모든 카드에 적혀있는 수를 22가 되도록 할 수도 있다. 이때, 적혀있는 수를 바꾼 카드의 수는 22개이다.

가장 왼쪽에 있는 카드부터 가장 오른쪽에 있는 카드까지 각 카드에 적혀있는 수들이 순서대로 주어질 때, 조건을 만족하도록 하려면 바꿔야 할 카드 수의 최솟값을 구하여라.

입력

첫 번째 줄에 카드의 수 NN이 주어진다.

두 번째 줄에는 각 카드에 적힌 수 x_ix\_i가 공백을 사이에 두고 순서대로 주어진다.

출력

첫 번째 줄에 답을 출력한다.

제한

  • 2N5002 ≤ N ≤ 500
  • 모든 1iN1 ≤ i ≤ N 에 대해 1,000,000x_i1,000,000-1,000,000 ≤ x\_i ≤ 1,000,000