atcoder#ABC261F. [ABC261F] Sorting Color Balls
[ABC261F] Sorting Color Balls
配点 : 点
問題文
個の球が左右一列に並んでいます。 左から 番目の球の色は色 であり、整数 が書かれています。
高橋君の目標は球を左から右に見た時に書かれている数が非減少になるように球を並べ替えることです。 言い換えれば、高橋君の目標は、任意の について、左から 番目の球に書かれている数 が左から 番目に書かれている数以上であるようにすることです。
高橋君は目標を達成するために、次の操作を好きなだけ( 回でも良い )繰り返すことができます。
をみたす整数 を選ぶ。 左から 番目の球と 番目の球の色が異なっているならば、コストを 支払う。 (色が等しいならばコストを支払う必要は無い。) 左から 番目の球と 番目の球を入れ替える。
高橋君が目標を達成するために支払う必要のあるコストの最小値を求めてください。
制約
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
出力
高橋君が支払う必要のあるコストの最小値を整数で出力せよ。
5
1 5 2 2 1
3 2 1 2 1
6
球の情報を で表すとします。 最初の状態は , , , , です。 例えば、高橋君は次のように操作を行うことができます。
- 左から 番目の球 (色 ) と 番目の球 (色 ) を入れ替える。 球は左から , , , , となる。
- 左から 番目の球 (色 ) と 番目の球 (色 ) を入れ替える。 球は左から , , , , となる。
- 左から 番目の球 (色 ) と 番目の球 (色 ) を入れ替える。 球は左から , , , , となる。
- 左から 番目の球 (色 ) と 番目の球 (色 ) を入れ替える。 球は左から , , , , となる。
- 左から 番目の球 (色 ) と 番目の球 (色 ) を入れ替える。 球は左から , , , , となる。
- 左から 番目の球 (色 ) と 番目の球 (色 ) を入れ替える。 球は左から , , , , となる。
- 左から 番目の球 (色 ) と 番目の球 (色 ) を入れ替える。 球は左から , , , , となる。
最後の操作の後で球に書かれている数は左から順に となっているため、高橋君は目的を達成しています。
回目の操作にコストが ずつかかるため、 このとき合計でコストは かかり、このときが最小となります。 回目の操作では、入れ替えた球の色がともに色 であるためコストがかからないことに注意してください。
3
1 1 1
3 2 1
0
すべての球の色は同じであるため、球の入れ替えにコストがかかることはありません。
3
3 1 2
1 1 2
0
高橋君は一度も操作を行わずとも、目的を達成できています。