atcoder#KEYENCE2020D. Swap and Flip

Swap and Flip

题目描述

N N 枚のカードがあり、1, 2, ..., N 1,\ 2,\ ...,\ N の番号がついています。 カード i i (1  i  N 1\ \leq\ i\ \leq\ N ) の片方の面には赤い文字で整数 Ai A_i が、 もう片方の面には青い文字で整数 Bi B_i が書かれています。 最初、これらのカードは赤い文字が書かれた面を表にして 左から右に番号順に一列に並んでいます。

以下の操作を繰り返すことで、カードの表側の面に書かれた整数の列が左から右に広義単調増加となる (すなわち、各 i i (1  i  N  1 1\ \leq\ i\ \leq\ N\ -\ 1 ) に対して、左から i + 1 i\ +\ 1 枚目のカードの表側の面に書かれた整数が i i 枚目のカードの表側の面に書かれた整数以上である) ようにすることが可能かどうか判定してください。 さらに、可能である場合、必要な操作の回数の最小値を求めてください。

  • 整数 i i (1  i  N  1 1\ \leq\ i\ \leq\ N\ -\ 1 ) を一つ選ぶ。 左から i i 番目のカードと i + 1 i\ +\ 1 番目のカードの位置を入れ替え、さらにこれら 2 2 枚のカードを裏返す。

输入格式

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

N N A1 A_1 A2 A_2 ... ... AN A_N B1 B_1 B2 B_2 ... ... BN B_N

输出格式

単調増加となるようにすることが不可能である場合、-1 と出力せよ。 可能である場合、必要な操作の回数の最小値を出力せよ。

题目大意

现在有nn张从11编号到nn的卡片,卡片ii上一面有一个红色写的整数AiA_i,另一面有一个蓝色写的整数BiB_i,一开始,这些卡牌红色面朝上,被从左往右按11NN的顺序放好。

通过重复下面的操作,请确定是否可以形成一个从左到右朝上的不下降序列(对于每个ii,左数第i+1i+1张卡片朝上的数不小于左数第ii张卡片朝上的数)。如果可以,那么请计算最小需要的操作次数。如果不可能,请输出-1

  • 选择一个整数ii,调换左数第ii张和第i+1i+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

提示

制約

  • 1  N  18 1\ \leq\ N\ \leq\ 18
  • 1  Ai, Bi  50 1\ \leq\ A_i,\ B_i\ \leq\ 50 (1  i  N 1\ \leq\ i\ \leq\ N )
  • 入力値はすべて整数である。

Sample Explanation 1

i = 1 i\ =\ 1 として操作を 1 1 回行うと、 カードの表側の面に書かれた整数の列は [2, 3, 3] [2,\ 3,\ 3] となり、単調増加となります。

Sample Explanation 2

何回操作を行っても、 カードの表側の面に書かれた整数の列は [2, 1] [2,\ 1] のままであり、これは単調増加ではありません。

Sample Explanation 3

操作を行う必要がない場合もあります。