RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
문제 JOI00129

集合写真(Group Photo)

설명

とある合宿の最終日,合宿の参加者N 人で集合写真を撮ることとなった.参加者には身長の低い順に1
からN までの番号が付けられている.参加者h の身長はh である(1 ≦h ≦N).
集合写真は,階段の上に並んで撮影する.この階段はちょうどN 段からなり,低い方から順に1 からN
までの番号が付けられている.段i + 1 は段i よりもちょうど2 だけ高い(1 ≦i ≦N −1).階段の幅はとて
も狭いため,それぞれの段に参加者が1 人ずつ立って,縦一列に並んで撮影する.
間もなく撮影が行われようとしており,それぞれの段に参加者が立っている.現在,段i (1 ≦i ≦N) に
立っている参加者は,参加者Hi である.
ところが,あまりにも参加者の身長が違いすぎるため,この並び順では写真に写らない参加者がいるかも
しれない.そこで,あなたは参加者の位置を並べ替えて,少なくとも全員の頭の上部が写るようにしたい.
すなわち,次の条件が満たされるようにしたい.
• 段i (1 ≦i ≦N) に立っている参加者の身長をai とする.このとき,すべてのi (1 ≦i ≦N −1) に対
し,ai < ai+1 + 2 が成り立つ.
ただし,あなたは隣り合う参加者の位置を入れ替えることしかできない.すなわち,1 回の操作において,
段i (1 ≦i ≦N −1) を任意に一つ選び,段i の参加者と段i + 1 の参加者を入れ替えることができる.
この操作をできるだけ少ない回数行うことで,条件が満たされるようにしたい.
現在の参加者の並び順が与えられたとき,必要な操作回数の最小値を求めるプログラムを作成せよ.

제약

• 3 ≦N ≦5 000.
• 1 ≦Hi ≦N (1 ≦i ≦N).
• Hi , Hj (1 ≦i < j ≦N).

  1. (5 点) N ≦9.
  2. (7 点) N ≦20.
  3. (32 点) N ≦200.
  4. (20 点) N ≦800.
  5. (36 点) 追加の制約はない.
입력 형식

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

출력 형식

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

第20 回日本情報オリンピック(JOI 2020/2021) 本選
2021 年2 月14 日(オンライン開催)

예제 1
입력
5
3 5 2 4 1
출력
3
예제 2
입력
5
3 2 1 5 4
출력
0
예제 3
입력
9
6 1 3 4 9 5 7 8 2
출력
9
문제 정보

생성자가 기록되지 않았습니다.

출처 JOI 2021 Final

평가 및 의견

集合写真(Group Photo)

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

集合写真(Group Photo)

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8