#791
Unrated
集合写真
서브테스크
시간 제한
4s
메모리 제한
512MB
제출
0
정답
0
맞힌 사람
0
정답 비율
0.0%

문제

とある合宿の最終日,合宿の参加者 NN 人で集合写真を撮ることとなった.参加者には身長の低い順に 11 から NN までの番号が付けられている.参加者 hh の身長は hh である(1hN1 \le h \le N).

集合写真は,階段の上に並んで撮影する.この階段はちょうど NN 段からなり,低い方から順に 11 から NN までの番号が付けられている.段 i+1i+1 は段 ii よりもちょうど 22 だけ高い(1iN11 \le i \le N-1).階段の幅はとても狭いため,それぞれの段に参加者が 11 人ずつ立って,縦一列に並んで撮影する.

間もなく撮影が行われようとしており,それぞれの段に参加者が立っている.現在,段 ii1iN1 \le i \le N)に立っている参加者は,参加者 HiH_i である.

ところが,あまりにも参加者の身長が違いすぎるため,この並び順では写真に写らない参加者がいるかもしれない.そこで,あなたは参加者の位置を並べ替えて,少なくとも全員の頭の上部が写るようにしたい.すなわち,次の条件が満たされるようにしたい.

  • ii1iN1 \le i \le N)に立っている参加者の身長を aia_i とする.このとき,すべての ii1iN11 \le i \le N-1)に対し,ai<ai+1+2a_i < a_{i+1} + 2 が成り立つ.

ただし,あなたは隣り合う参加者の位置を入れ替えることしかできない.すなわち,11 回の操作において,段 ii1iN11 \le i \le N-1)を任意に一つ選び,段 ii の参加者と段 i+1i+1 の参加者を入れ替えることができる.

この操作をできるだけ少ない回数行うことで,条件が満たされるようにしたい.

現在の参加者の並び順が与えられたとき,必要な操作回数の最小値を求めるプログラムを作成せよ.

입력

入力は以下の形式で標準入力から与えられる.入力される値はすべて整数である.

N
H_1 \ldots H_N

출력

必要な操作回数の最小値を,標準出力に 11 行で出力せよ.

예제 입력 1

5
3 5 2 4 1

예제 출력 1

3

以下のように操作を 33 回行うことで,条件を満たすようにできる.

  • まず,段 22 の参加者と段 33 の参加者を入れ替える.参加者の身長は前から順に 3,2,5,4,13, 2, 5, 4, 1 となる.
  • 次に,段 44 の参加者と段 55 の参加者を入れ替える.参加者の身長は前から順に 3,2,5,1,43, 2, 5, 1, 4 となる.
  • 最後に,段 33 の参加者と段 44 の参加者を入れ替える.参加者の身長は前から順に 3,2,1,5,43, 2, 1, 5, 4 となり,条件を満たす.

22 回以下の操作で条件を満たす状態にすることはできないので,33 を出力する.

예제 입력 2

5
3 2 1 5 4

예제 출력 2

0

すでに条件を満たしているので,操作を行う必要はない.

예제 입력 3

9
6 1 3 4 9 5 7 8 2

예제 출력 3

9

제한

  • 3N50003 \le N \le 5\,000
  • 1HiN1 \le H_i \le N1iN1 \le i \le N).
  • HiHjH_i \ne H_j1i<jN1 \le i < j \le N).

서브태스크

  1. (55 점) N9N \le 9
  2. (77 점) N20N \le 20
  3. (3232 점) N200N \le 200
  4. (2020 점) N800N \le 800
  5. (3636 점) 追加の制約はない.
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
아직 맞은 사람이 없습니다.
난이도 투표
Unrated0명 투표
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
제출 내역이 없습니다.