No.2089 置換の符号
タグ : / 解いたユーザー数 111
作問者 : 👑

問題文
入力に 以上の整数 と 次の置換 が与えられます。
の符号を求めてください。
以下、置換やその符号について知らない人向けの説明します。(クリックで開く)
正整数 に対し、 次の置換とは大雑把には 以下の正整数をシャッフルする関数のことです。より正確には以下のように定義されます:
定義(置換)
以下の正整数全体の集合を と置く。 次の置換とは、 から への全単射な写像である。
を 以上の整数とし、 を 次の置換とします。 が互換であるとは、大雑把には がちょうど つの数を入れ替えるということです。より正確には、以下を満たす 以下の正整数 と が存在するということです:
- である。
- である。
- である。
- 以下の任意の正整数 に対し、 かつ ならば、 である。
の符号は と書かれる整数で、それは以下のように定義されます:
- が偶数個の互換の合成で表せるならば、 である。
- が偶数個の互換の合成で表せないならば、 である。
ただし は偶数であり、互換 個の合成は恒等置換として定義されます。
入力
入力は次の形式で標準入力から与えられます:
行目に が与えられ、 行目に 以下の各正整数 の による行き先 を が小さい順に半角空白区切りで並べた文字列 が与えられます。
また、以下このようにして得られる を「 を 行記法で表記した文字列」と表現することにします。
制約
入力 は以下の制約を満たします:
- は 以上 以下の非負整数
- は 次の置換を 行記法で表記した文字列
出力
の符号を 行に出力してください。
最後に改行してください。
サンプル
サンプル1
入力
2 1 2
出力
1
は恒等置換 です。恒等置換は互換 個の合成とみなすこともできますし、互換 を 個合成したものでもあります。特に は互換偶数個の合成で表すことができます。
従って の符号は です。
サンプル2
入力
2 2 1
出力
-1
は互換 です。 次の互換は 自身しか存在しませんが、 が恒等置換であることから を偶数個合成したものは恒等置換となります。特に恒等置換でない は互換偶数個の合成で表すことができません。
従って の符号は です。
サンプル3
入力
3 3 1 2
出力
1
は置換 です。互換 と のこの順での合成は
であるので、特に は互換偶数個の合成で表すことができます。
従って の符号は です。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。