No.3510 RPS Eliminations
レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限
: 1024 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 11
作問者 :
Nzt3
/ テスター :
Naru820
Solalyth
タグ : / 解いたユーザー数 11
作問者 :
Solalyth
問題文最終更新日: 2026-04-17 14:13:22
CPCTF 2026: PPCの他の問題:
問題文
長さ $N−1$ の整数列 $A=(A_1,\ldots,A_{N-1})$ が与えられます。
R,P,S のみからなる文字列 $S$ について $f(S)$ を以下のように定義します。
操作
- $i=1,2,\ldots,N-1$ の順に $N-1$ 回の操作を行う
- $S_{A_i} = S_{A_{i}+1}$ のとき、操作を中断する
- そうでないとき、$S_{A_i}$ と $S_{A_i+1}$ はじゃんけんで勝敗が決まる。負ける方を取り除く
RとPではRが負けるPとSではPが負けるSとRではSが負ける
- $N-1$ 回の操作を行った後の文字列を $f(S)$ とする
$A$ の制約により、適切に文字列 $S$ を選べば $N-1$ 回の操作が行えることが保証されます。
$f(S)=$R,P,S となるような文字列 $S$ のうち辞書順で $K$ 番目に小さいものをそれぞれ求めてください。
そのような文字列が存在しない場合はそれを報告してください。
$T$ 個のテストケースが与えられるので、各テストケースについて上記の問題を解いてください。
制約
- $1 \le T \le 10^5$
- $2 \le N \le 2 \times 10^5$
- $1 \le A_i \le N- i\ (1 \le i \le N-1)$
- $1 \le K \le 10^{18}$
- $1$ つのファイルにおいて全てのテストケースにおける $N$ の合計は $2 \times 10^5$ 以下
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。ここで $\text{case}_i$ は $i$ 番目のテストケースを表す。
$T$
$\text{case}_1$
$\text{case}_2$
$\vdots$
$\text{case}_T$
各テストケースは $2$ 行からなり、以下の形式で与えられる。
$N$ $K$
$A_1 A_2 \dots A_{N-1}$
出力
テストケースごとに以下のように $3$ 行出力せよ。
- $1$ 行目に $f(S)=$
Rとなるような文字列 $S$ のうち辞書順で $K$ 番目に小さいものが存在するならばそれを出力せよ。存在しないならば-1を出力せよ。 - $2$ 行目に $f(S)=$
Pとなるような文字列 $S$ のうち辞書順で $K$ 番目に小さいものが存在するならばそれを出力せよ。存在しないならば-1を出力せよ。 - $3$ 行目に $f(S)=$
Sとなるような文字列 $S$ のうち辞書順で $K$ 番目に小さいものが存在するならばそれを出力せよ。存在しないならば-1を出力せよ。
サンプル
サンプル1
入力
3 5 1 4 2 2 1 5 3 4 2 2 1 7 10000 6 2 2 1 1 1
出力
RPRPS PPSRS PPRPS RPSPR PRSPS PPSPR -1 -1 -1
$1$ つ目のテストケースでは、以下のように操作が行われます。
RPRPSに操作を行うと、RPRPS→RPRS→RPS→RS→RとなるPPSRSに操作を行うと、PPSRS→PPSR→PSR→PR→PとなるPPRPSに操作を行うと、PPRPS→PPRS→PPS→PS→Sとなる
それぞれ辞書順で $1$ 番目に小さいです。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。