結果
| 問題 |
No.393 2本の竹
|
| コンテスト | |
| ユーザー |
takeya_okino
|
| 提出日時 | 2017-08-06 12:04:23 |
| 言語 | PHP (843.2) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,091 bytes |
| コンパイル時間 | 3,477 ms |
| コンパイル使用メモリ | 30,660 KB |
| 実行使用メモリ | 92,700 KB |
| 最終ジャッジ日時 | 2024-10-11 22:43:47 |
| 合計ジャッジ時間 | 7,929 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | WA * 9 TLE * 1 -- * 18 |
コンパイルメッセージ
No syntax errors detected in Main.php
ソースコード
<?php
$d = trim(fgets(STDIN));
for($i = 0; $i < $d; $i++) {
$array = explode(" ", trim(fgets(STDIN)));
$n1 = $array[0];
$n2 = $array[1];
$m = trim(fgets(STDIN));
$a = explode(" ", trim(fgets(STDIN)));
sort($a);
$sum = array();
$sum[0] = $a[0];
for($j = 1; $j < $m; $j++) {
$sum[$j] = $sum[$j - 1] + $a[$j];
}
// $dp[i][j]は竹1の長さj,竹2の長さ($n1+$n2-j-$sum[$i - 1])の場合に要求竹i以上で提供できる最大数を表す
$dp = array();
for($j = 0; $j <= $n1 + $n2 - $sum[$m - 1]; $j++) {
if(($j >= $a[$m - 1]) || ($n1 + $n2 - $sum[$m - 1] - $j >= $a[$m - 1])) {
$dp[$m - 1][$j] = 1;
} else {
$dp[$m - 1][$j] = 0;
}
}
for($j = $m - 2; $j >= 0; $j--) {
for($k = 0; $k <= $n1 + $n2 - $sum[$j - 1]; $k++) {
$dp[$j][$k] = 0;
if($k >= $a[$j]) {
$dp[$j][$k] = max($dp[$j][$k], 1 + $dp[$j + 1][$k - $a[$j]]);
}
if($n1 + $n2 - $sum[$j - 1] - $k >= $a[$j]) {
$dp[$j][$k] = max($dp[$j][$k], 1 + $dp[$j + 1][$k]);
}
}
}
print($dp[0][$n1]);
print("\n");
}
?>
takeya_okino