問題一覧 > 通常問題

No.2080 Simple Nim Query

レベル : / 実行時間制限 : 1ケース 3.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 77
作問者 : taiga0629kyopro / テスター : 👑 AngrySadEight 👑 ygussany
2 ProblemId : 8437 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2022-09-18 18:01:04

問題文

taiga 君は次のような問題を作りました。

Simple Nim

整数列 (C1,C2,,Ck)(C_1,C_2,\dots ,C_k) を用いて F 君と S 君は石取りゲームを行います。 最初 kk 個の石の山が左右一列に並んでおり、左から ii 番目の石の山には CiC_i 個の石があります。 F 君から始めて 22 人は交互に以下の操作を繰り返します。

  • 石が 11 個以上残っている山のうち最も右にあるものを選ぶ。 その山に nn 個の石があるとき、11 個以上 nn 個以下の任意の個数の石をその山から取り除く。

先に操作できなくなったプレイヤーが負けとなります。どちらが勝ちますか?

長さ NN の整数列 AAQQ 個のクエリが与えられます。 ii 番目のクエリでは三つの整数 Ti,Xi,YiT_i,X_i,Y_i が与えられるので以下の処理を行ってください。

  • Ti=1T_i=1 のとき、AXiA_{X_i}YiY_i で置き換える。

  • Ti=2T_i=2 のとき、C=(AXi,AXi+1,,AYi)C=(A_{X_i},A_{X_i+1},\dots,A_{Y_i}) とした時の問題 "Simple Nim" の答えを出力する。

入力

NN QQ
A1A_1 A2A_2 \dots ANA_N
T1T_1 X1X_1 Y1Y_1
T2T_2 X2X_2 Y2Y_2
\vdots
TQT_Q XQX_Q YQY_Q

  • 1N2×1051 \le N \le 2×10^5
  • 1Q2×1051 \le Q \le 2×10^5
  • 1Ai1091 \le A_i \le 10^9
  • TiT_i11 または 22
  • Ti=1T_i=1 なら 1XiN1 \le X_i \le N かつ 1Yi1091 \le Y_i \le 10^9
  • Ti=2T_i=2 なら 1XiYiN1 \le X_i \le Y_i \le N
  • 入力は全て整数
  • 出力

    Ti=2T_i=2 であるような各クエリについて、"Simple Nim" で F 君が勝つなら F と、 S 君が勝つなら S と出力してください。

    サンプル

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

    C=(2,1)C=(2,1) です。最初 F 君は左から 22 番目の山から石を 11 個取る以外の選択肢はありません。 すると S 君は左から 11 番目の山から石を 22 個取ることでゲームに勝つことができます。

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

    C=(1,2)C=(1,2) です。最初 F 君が左から 22 番目の山から石を 11 個とります。そうすると、次に S 君は左から 22 番目の山から石を 11 個取る以外の選択肢はありません。よって次のターンに F 君が左から 11 番目の山から石を 11 個とることで F 君は勝利します。

    サンプル3
    入力
    3 3
    3 1 4
    2 1 2
    1 2 2
    2 1 3
    出力
    S
    F

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