結果
問題 | No.102 トランプを奪え |
ユーザー | takeya_okino |
提出日時 | 2017-07-21 10:59:31 |
言語 | PHP (8.3.4) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,630 bytes |
コンパイル時間 | 3,690 ms |
コンパイル使用メモリ | 30,824 KB |
実行使用メモリ | 36,516 KB |
最終ジャッジ日時 | 2024-10-09 03:28:55 |
合計ジャッジ時間 | 8,005 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | WA | - |
testcase_01 | WA | - |
testcase_02 | OLE | - |
testcase_03 | -- | - |
testcase_04 | -- | - |
testcase_05 | -- | - |
testcase_06 | -- | - |
testcase_07 | -- | - |
testcase_08 | -- | - |
testcase_09 | -- | - |
testcase_10 | -- | - |
コンパイルメッセージ
No syntax errors detected in Main.php
ソースコード
<?php $N = explode(" ", trim(fgets(STDIN))); $N1 = $N[0]; $N2 = $N[1]; $N3 = $N[2]; $N4 = $N[3]; $s = $N1 + $N2 + $N3 + $N4; // $dp[i][j][k][l][m]は相手がm枚持っており、場のカードが(i, j, k, l)の場合に先手が最終的に稼げるカードの枚数を表す $dp = array(); for($i = 0; $i <= $s; $i++) { $dp[0][0][0][0][$i] = 0; } for($t = 1; $t <= $s; $t++) { for($m = 0; $m <= $s - $t; $m++) { for($n1 = 0; $n1 <= $t; $n1++) { for($n2 = 0; $n2 <= $t - $n1; $n2++) { for($n3 = 0; $n3 <= $t - $n1 - $n2; $n3++) { $n4 = $t - $n1 - $n2 - $n3; $kasegi = -100; for($k1 = 1; $k1 <= min(3, $n1); $k1++) { $sente = $s - $t - $m; $moto = $sente; $aite = $m; $sente += $k1; if($k1 == $n1) { $sente += intdiv($aite + 1, 2); $aite -= intdiv($aite + 1, 2); } $aite += $dp[$n1 - $k1][$n2][$n3][$n4][$sente]; $sente = $s - $aite; $kasegi = max($kasegi, $sente - $moto); } for($k2 = 1; $k2 <= min(3, $n2); $k2++) { $sente = $s - $t - $m; $moto = $sente; $aite = $m; $sente += $k2; if($k2 == $n2) { $sente += intdiv($aite + 1, 2); $aite -= intdiv($aite + 1, 2); } $aite += $dp[$n1][$n2 - $k2][$n3][$n4][$sente]; $sente = $s - $aite; $kasegi = max($kasegi, $sente - $moto); } for($k3 = 1; $k3 <= min(3, $n3); $k3++) { $sente = $s - $t - $m; $moto = $sente; $aite = $m; $sente += $k3; if($k3 == $n3) { $sente += intdiv($aite + 1, 2); $aite -= intdiv($aite + 1, 2); } $aite += $dp[$n1][$n2][$n3 - $k3][$n4][$sente]; $sente = $s - $aite; $kasegi = max($kasegi, $sente - $moto); } for($k4 = 1; $k4 <= min(3, $n4); $k4++) { $sente = $s - $t - $m; $moto = $sente; $aite = $m; $sente += $k4; if($k4 == $n4) { $sente += intdiv($aite + 1, 2); $aite -= intdiv($aite + 1, 2); } $aite += $dp[$n1][$n2][$n3][$n4 - $k4][$sente]; $sente = $s - $aite; $kasegi = max($kasegi, $sente - $moto); } } } } } } $ans = 'Draw'; $taro = $dp[$N1][$N2][$N3][$N4][0]; $jiro = $s - $taro; if($taro > $jiro) $ans = 'Taro'; if($taro < $jiro) $ans = 'Jiro'; print($ans); ?>