atcoder#ABC302G. [ABC302G] Sort from 1 to 4

[ABC302G] Sort from 1 to 4

题目描述

全ての要素が 1 1 以上 4 4 以下の整数である、長さ N N の数列 A=(A1,A2,,AN) A=(A_1,A_2,\ldots,A_N) が与えられます。

高橋君は次の操作を何回でも (0 0 回でも良い) 繰り返し行う事ができます。

  • 1 i < j N 1\leq\ i\ <\ j\leq\ N をみたす整数の組 (i,j) (i,j) を選び、Ai A_i Aj A_j を交換する。

数列 A A を広義単調増加にするために必要な操作回数の最小値を求めてください。
ただし、数列 A A が広義単調増加であるとは、1 i N1 1\leq\ i\leq\ N-1 をみたすすべての整数について Ai Ai+1 A_i\leq\ A_{i+1} が成り立つことをさします。

输入格式

入力は以下の形式で標準入力から与えられる。

N N A1 A_1 A2 A_2 \ldots AN A_N

输出格式

数列 A A を広義単調増加にするために必要な操作回数の最小値を一行に出力せよ。

题目大意

给定一个长度为 NN 的序列 A=(A1,A2,...,AN)A=(A_1, A_2, ..., A_N),其中每个元素都是介于 1144 之间的整数。

可以进行以下操作任意次(可能为零次):

  • 选择一对整数 (i,j)(i, j),其中 1i<jN1≤i<j≤N,并交换 AiA_iAjA_j

输出使序列 AA 变为非递减序列所需的最小操作次数。

非递减序列是指对于所有 1iN11≤i≤N−1,都满足 AiAi+1A_i≤A_{i+1} 的序列。

6
3 4 1 1 2 4
3
4
2 3 4 1
3

提示

制約

  • 2  N  2× 105 2\ \leq\ N\ \leq\ 2\times\ 10^5
  • 1 Ai  4 1\leq\ A_i\ \leq\ 4
  • 入力はすべて整数

Sample Explanation 1

次のようにして 3 3 回の操作で A A を広義単調増加にすることができます。 - (i,j)=(2,3) (i,j)=(2,3) を選び、A2 A_2 A3 A_3 を交換する。A=(3,1,4,1,2,4) A=(3,1,4,1,2,4) となる。 - (i,j)=(1,4) (i,j)=(1,4) を選び、A1 A_1 A4 A_4 を交換する。A=(1,1,4,3,2,4) A=(1,1,4,3,2,4) となる。 - (i,j)=(3,5) (i,j)=(3,5) を選び、A3 A_3 A5 A_5 を交換する。A=(1,1,2,3,4,4) A=(1,1,2,3,4,4) となる。 2 2 回以下の操作で A A を広義単調増加にすることはできないため、このとき操作回数が最小となります。 よって、3 3 を出力します。