問題一覧 > 通常問題

No.3673 未来予知

レベル : / 実行時間制限 : 1ケース 0.200秒 / メモリ制限 : 1024 MB / 標準ジャッジ問題
タグ : (AC するまで非表示) / 解いたユーザー数 9
作問者 : harurun / テスター : 👑 みうね TKTYI
お気に入りにしたユーザー ProblemId : 13833 / 自分の提出
問題文最終更新日: 2026-09-03 17:01:15
yukicoder contest 512 BONSAI (順位表) の他の問題:

注意:この問題は実行時間制限が非常に厳しく設定されています。

問題文

あなたは、ロボットの Alice と特殊なじゃんけんをしています。

このじゃんけんには、R, S, P, X の 4 種類の手があります。あなたの手と Alice の手に対する勝敗は、次の表で定められます。

表の行はあなたの手、列は Alice の手を表します。

  あなたの手 / Alice の手     R     S     P     X  
  R     引き分け     勝ち     引き分け     負け  
  S     負け     引き分け     勝ち     引き分け  
  P     引き分け     負け     引き分け     勝ち  
  X     勝ち     引き分け     負け     引き分け  

したがって、Alice の手に勝つためには、次の手を出す必要があります。

  Alice の手     勝つ手  
  R     X  
  S     R  
  P     S  
  X     P  

Alice は、内部に符号なし 32-bit 整数 state を保持しています。

最初に、state は $1$ 以上 $2^{32}-1$ 以下の整数から一つ選ばれます。あなたは、この初期値を知りません。

Alice は、各じゃんけんで次の疑似コードを 1 回実行し、出す手を決定します。

state ← 1 以上 2^32-1 以下の整数から1つ選ぶ

function generate_random_number():
    state ← state XOR (state << 13)
    state ← state XOR (state >> 17)
    state ← state XOR (state << 5)
    return state

function choose_hand():
    x ← generate_random_number()

    if x mod 4 = 0:
        return 'R'
    else if x mod 4 = 1:
        return 'S'
    else if x mod 4 = 2:
        return 'P'
    else:
        return 'X'

ここで、XOR はビットごとの排他的論理和、<< は左ビットシフト、>> は右ビットシフトを表します。

すべての演算は符号なし 32-bit 整数上で行われます。演算結果が 32 bit を超えた場合、上位の超過した bit は切り捨てられます。

あなたはこれまで Alice と $100$ 回じゃんけんを行い、Alice が出した手をすべて記録しました。

この記録は長さ $100$ の文字列 $T$ で表されます。$T$ の $i$ 文字目は、$i$ 回目のじゃんけんで Alice が出した手を表します。

この記録を利用して、これから行われる $N$ 回のじゃんけんすべてに勝利してください。

形式的には、以下の条件を満たす長さ $N$ の文字列 $U$ を出力してください。

  • $U_i$ は、あなたが $100+i$ 回目のじゃんけんで出す手を表す。
  • すべての $1\leq i\leq N$ について、$U_i$ は Alice が $100+i$ 回目に出す手に勝つ。

なお、この問題の制約下では、異なる初期状態から同じ文字列 $T$ が生成されないことが証明できます。

入力

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

$T$
$N$
  • $T$ は長さ $100$ の文字列
  • $T$ の各文字は R, S, P, X のいずれかである
  • $T$ は、問題文中の疑似コードによって生成されたものである
  • $1\leq N\leq 2\times10^5$
  • $N$ は整数

出力

答えを $1$ 行に出力してください。 最後に改行してください。

サンプル

サンプル1
入力
SSSXSRPPSRXXPPSSRRSSXSXXPSSRXPXRSRRRPPPXSPXXXSSRSSXXRSRRRRXSSPRXRRRPSRPSRRRSPSXRSRPRRRXXSXRSXSRPXSRX
1
出力
X
サンプル2
入力
XXXPSRRXPXXRRRPSXPRRRPSSRSXRSPSPXPPSSRRRXPSXSRRXRXSPXXRPPSSPSRPPPXSRSPRPSRXRSSPSRPSRPPRSPRSRSSXXPPXS
5
出力
PXSPR

サンプル3
入力
SXRRRSSSXSRRRSPSPSSRXPRSPSRSRXPRXSRXRPPPPPSSSRPSSRSRSXRRPPXRRSRXXSRSXXXXRPPRRSPSRSRXXSRPPXSRPSPPSRPR
10
出力
RPSRXPPSXP

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