問題一覧 > 通常問題

No.2727 Tetrahedron Game

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 32
作問者 : MasKoaTSMasKoaTS / テスター : nok0nok0 ygussanyygussany
1 ProblemId : 10158 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2024-04-12 22:39:39

問題文

$2$ 個の正整数 $N, K$ と、$9$ 個の整数 $p_{1,1}, p_{1,2}, p_{1,3}, p_{2,1}, p_{2,2}, p_{2,3}, p_{3,1}, p_{3,2}, p_{3,3}$ と、長さ $N$ の正整数列 $A = (A_{1}, A_{2}, \dots, A_{N})$ が与えられます。
また、KP のみからなる長さ $N$ の文字列 $S$ が与えられます。以下、$S$ の先頭から $i$ $(1 \leq i \leq N)$ 番目の文字を $S_{i}$ と表します。

三次元空間上に $4$ 点 $O(0, 0, 0), P_{1}(p_{1,1}, p_{1,2}, p_{1,3}), P_{2}(p_{2,1}, p_{2,2}, p_{2,3}), P_{3}(p_{3,1}, p_{3,2}, p_{3,3})$ をとり、コアさんパチェさんがゲームを行います。

ゲームは $N$ 回のターンからなり、$i$ $(1 \leq i \leq N)$ 回目のターンでは $S_{i}$ が K ならばコアさんが、$S_{i}$ が P ならばパチェさんが次の操作を行います。

  1. まず、$1 \leq j,k \leq 3$ を満たす整数の組 $(j,k)$ を $1$ つ選ぶ($j = k$ でも良い) 。

  2. 次に、三次元空間上に $\overrightarrow{OQ} = \overrightarrow{OP_{j}} + A_{i} \overrightarrow{OP_{k}}$ を満たす点 $Q$ をとり、$P_{j}$ を $Q$ と同じ座標に移動させる。

$N$ 回のターン終了後、ゲームの結果を次の手順によって決定します。

  1. $4$ 点 $O, P_{1}, P_{2}, P_{3}$ からなる四面体の体積を $V$ とする。ただし、これら $4$ 点が同一平面上に存在する場合は $V = 0$ とする。

  2. $V$ が正整数でないならば、引き分けとする。

  3. $V$ が正整数であり、$V$ を $101$ で割った余りが $K$ 以上ならば、コアさんの勝ちとする。

  4. 上記以外の場合は、パチェさんの勝ちとする。

両者が最善を尽くしたとき、ゲームの結果がどうなるか判定してください。

$T$ 個のテストケースについて答えを求めてください。

制約

  • $1 \leq T \leq 10^{4}$

  • $1 \leq N \leq 10^{4}$

  • $1 \leq K \leq 100$

  • $-10^{6} \leq p_{i,j} \leq 10^{6}$ $(1 \leq i, j \leq 3)$

  • $1 \leq A_{i} \leq 99$ $(1 \leq i \leq N)$

  • $S$ は KP のみからなる長さ $N$ の文字列

  • $1$ つの入力で与えられる $N$ の総和は $10^{4}$ 以下

  • $S$ 以外の入力はすべて整数

入力

入力は次の形式で与えられます。

$T$
$\mathrm{case}_{1}$
$\mathrm{case}_{2}$
  $\vdots$
$\mathrm{case}_{T}$

各テストケースは次の形式で与えられます。

$N$ $K$
$p_{1,1}$ $p_{1,2}$ $p_{1,3}$
$p_{2,1}$ $p_{2,2}$ $p_{2,3}$
$p_{3,1}$ $p_{3,2}$ $p_{3,3}$
$A_{1}$ $A_{2}$ $\cdots$ $A_{N}$
$S$

出力

答えを $1$ 行ずつ合計 $T$ 行に出力してください。

$i$ $(1 \leq i \leq T)$ 行目には、$i$ 個目のテストケースについてゲームを行ったときにコアさんが勝つならば K を、パチェさんが勝つならば P を、引き分けになるならば D を出力してください。

サンプル

サンプル1
入力
4
3 10
1 2 3
6 5 4
8 7 9
2 3 2
KKP
3 30
1 2 3
6 5 4
8 7 9
2 3 2
KKP
2 1
1 1 1
2 2 2
3 3 3
10 20
PK
10 50
14092 -4810 2101
-573209 -311 9
2098 454103 -785
48 19 21 63 99 8 32 53 29 78
KKPKPPKPKP
出力
K
D
D
P

まず、$1$ つ目のテストケースではコアさんが必勝です。例えば、次のように操作を行います。

  1. $1$ 回目のターンにおいて、コアさんは $(j, k) = (2, 1)$ を選ぶ。このとき、点 $P_{2}$ が座標 $(8, 9, 10)$ に移動する。

  2. $2$ 回目のターンにおいて、コアさんは $(j, k) = (3, 3)$ を選ぶ。このとき、点 $P_{3}$ が座標 $(32, 28, 36)$ に移動する。

  3. $3$ 回目のターンにおいて、パチェさんは $(j, k) = (1, 3)$ を選ぶ。このとき、点 $P_{1}$ が座標 $(65, 58, 75)$ に移動する。

  4. $3$ 回のターン終了後、$4$ 点 $O, P_{1}, P_{2}, P_{3}$ からなる四面体の体積は $V = 14$ となる。

  5. $14$ を $101$ で割った余りは $14$ であり、これは $10$ 以上なのでコアさんの勝ちとなる。

続いて、$2$ つ目のテストケースでは引き分けとなります。例えば、次のように操作を行います。

  1. $1$ 回目のターンにおいて、コアさんは $(j, k) = (1, 3)$ を選ぶ。このとき、点 $P_{1}$ が座標 $(17, 16, 21)$ に移動する。

  2. $2$ 回目のターンにおいて、コアさんは $(j, k) = (1, 3)$ を選ぶ。このとき、点 $P_{1}$ が座標 $(41, 37, 48)$ に移動する。

  3. $3$ 回目のターンにおいて、パチェさんは $(j, k) = (1, 1)$ を選ぶ。このとき、点 $P_{1}$ が座標 $(123, 111, 144)$ に移動する。

  4. $3$ 回のターン終了後、$4$ 点 $O, P_{1}, P_{2}, P_{3}$ からなる四面体の体積は $V = \dfrac{21}{2}$ となる。

  5. $\dfrac{21}{2}$ は正整数でないため、引き分けとなる。

続いて、$3$ つ目のテストケースでは引き分けとなります。
詳しい説明は省略しますが、両者がどのように操作を行ったとしても、$V = 0$ となります。

残りのテストケースについても同様に答えを求めると、上の出力例のようになります。

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