#icpc2015summerday2i. [icpc2015summer_day2_i]ツインリバース
[icpc2015summer_day2_i]ツインリバース
Problem Statement
要素数 の配列 が与えられる。ただし、 は の順列である。
次の操作を 回以上 回以下の任意の回数行い、 を へソートしたい。
- 整数 () を つ選び、区間 A\[1,\\ i-1\] の要素を逆順にし、区間 A\[i+1,\\ N\] の要素を逆順にする。
ただし、区間 A\[l,\\ r\] とは の 番目の位置のことである。
を へソートできるか判定せよ。ソートできるならば、操作の例を一つ出力せよ。
Constraints
- は の順列である。
Input Format
入力は以下の形式で標準入力から与えられる。
Output Format
を へソートできないならば、-1
とだけ一行に出力せよ。
ソートできるならば、操作の例を一つ次のように出力せよ。
- 行目には、操作の回数を表す整数 () を出力せよ。
- 行目からの 行のうち 行目には、 回目の操作で選ぶ整数 () を出力せよ。
Sample Input 1
5
5 1 4 2 3
Sample Output 1
2
3
1
例えば、次のように 回の操作を行えばよい。
- を選ぶと →
- を選ぶと →
Sample Input 2
2
2 1
Sample Output 2
-1
Sample Input 3
3
1 2 3
Sample Output 3
0