atcoder#KEYENCE2020D. Swap and Flip
Swap and Flip
题目描述
枚のカードがあり、 の番号がついています。 カード () の片方の面には赤い文字で整数 が、 もう片方の面には青い文字で整数 が書かれています。 最初、これらのカードは赤い文字が書かれた面を表にして 左から右に番号順に一列に並んでいます。
以下の操作を繰り返すことで、カードの表側の面に書かれた整数の列が左から右に広義単調増加となる (すなわち、各 () に対して、左から 枚目のカードの表側の面に書かれた整数が 枚目のカードの表側の面に書かれた整数以上である) ようにすることが可能かどうか判定してください。 さらに、可能である場合、必要な操作の回数の最小値を求めてください。
- 整数 () を一つ選ぶ。 左から 番目のカードと 番目のカードの位置を入れ替え、さらにこれら 枚のカードを裏返す。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
単調増加となるようにすることが不可能である場合、-1
と出力せよ。 可能である場合、必要な操作の回数の最小値を出力せよ。
题目大意
现在有张从编号到的卡片,卡片上一面有一个红色写的整数,另一面有一个蓝色写的整数,一开始,这些卡牌红色面朝上,被从左往右按到的顺序放好。
通过重复下面的操作,请确定是否可以形成一个从左到右朝上的不下降序列(对于每个,左数第张卡片朝上的数不小于左数第张卡片朝上的数)。如果可以,那么请计算最小需要的操作次数。如果不可能,请输出-1
。
- 选择一个整数,调换左数第张和第张卡片,并同时翻转它们。
3
3 4 3
3 2 3
1
2
2 1
1 2
-1
4
1 2 3 4
5 6 7 8
0
5
28 15 22 43 31
20 22 43 33 32
-1
5
4 46 6 38 43
33 15 18 27 37
3
提示
制約
- ()
- 入力値はすべて整数である。
Sample Explanation 1
として操作を 回行うと、 カードの表側の面に書かれた整数の列は となり、単調増加となります。
Sample Explanation 2
何回操作を行っても、 カードの表側の面に書かれた整数の列は のままであり、これは単調増加ではありません。
Sample Explanation 3
操作を行う必要がない場合もあります。