問題一覧 > 教育的問題

No.2089 置換の符号

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 111
作問者 : 👑 p-adic / テスター : taiga0629kyopro
0 ProblemId : 8448 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2022-09-30 21:03:37

問題文

入力に 22 以上の整数 NNNN 次の置換 AA が与えられます。

 

AA の符号を求めてください。

 

以下、置換やその符号について知らない人向けの説明します。(クリックで開く)

 

正整数 nn に対し、nn 次の置換とは大雑把には nn 以下の正整数をシャッフルする関数のことです。より正確には以下のように定義されます:

 

定義(置換)

nn 以下の正整数全体の集合を InI_n と置く。nn 次の置換とは、 InI_n から InI_n への全単射な写像である。

 

nn22 以上の整数とし、aann 次の置換とします。aa が互換であるとは、大雑把には aa がちょうど 22 つの数を入れ替えるということです。より正確には、以下を満たす nn 以下の正整数 iijj が存在するということです:

  1. iji \neq j である。
  2. a(i)=ja(i) = j である。
  3. a(j)=ia(j) = i である。
  4. nn 以下の任意の正整数 kk に対し、kik \neq i かつ kjk \neq j ならば、a(k)=ka(k) = k である。

aa の符号は sgn(a)\textrm{sgn}(a) と書かれる整数で、それは以下のように定義されます:

  1. aa が偶数個の互換の合成で表せるならば、sgn(a)=1\textrm{sgn}(a) = 1 である。
  2. aa が偶数個の互換の合成で表せないならば、sgn(a)=1\textrm{sgn}(a) = -1 である。

ただし 00 は偶数であり、互換 00 個の合成は恒等置換として定義されます。

入力

入力は次の形式で標準入力から与えられます:

NN
SS

11 行目に NN が与えられ、22 行目に NN 以下の各正整数 iiAA による行き先 A(i)A(i)ii が小さい順に半角空白区切りで並べた文字列 SS が与えられます。

また、以下このようにして得られる SS を「AA11 行記法で表記した文字列」と表現することにします。

制約

入力 N,SN, S は以下の制約を満たします:

  • NN22 以上 10410^4 以下の非負整数
  • SSNN 次の置換を 11 行記法で表記した文字列

出力

AA の符号を 11 行に出力してください。

最後に改行してください。

サンプル

サンプル1
入力
2
1 2
出力
1

AA は恒等置換 1 21 \ 2です。恒等置換は互換 00 個の合成とみなすこともできますし、互換 2 12 \ 122 個合成したものでもあります。特に AA は互換偶数個の合成で表すことができます。

従って AA の符号は 11 です。

サンプル2
入力
2
2 1
出力
-1

AA は互換 2 12 \ 1 です。22 次の互換は AA 自身しか存在しませんが、AAA \circ A が恒等置換であることから AA を偶数個合成したものは恒等置換となります。特に恒等置換でない AA は互換偶数個の合成で表すことができません。

従って AA の符号は 1-1 です。

サンプル3
入力
3
3 1 2
出力
1

AA は置換 3 1 23 \ 1 \ 2 です。互換 3 2 13 \ 2 \ 11 3 21 \ 3 \ 2 のこの順での合成は

3 2 11 3 2=3 1 2=A\displaystyle 3 \ 2 \ 1 \circ 1 \ 3 \ 2 = 3 \ 1 \ 2 = A

であるので、特に AA は互換偶数個の合成で表すことができます。

従って AA の符号は 11 です。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。