結果
| 問題 |
No.1538 引きこもりさんは引き算が得意。
|
| コンテスト | |
| ユーザー |
yulianess27__
|
| 提出日時 | 2021-06-17 18:27:22 |
| 言語 | PHP (843.2) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,953 bytes |
| コンパイル時間 | 721 ms |
| コンパイル使用メモリ | 36,120 KB |
| 実行使用メモリ | 36,760 KB |
| 最終ジャッジ日時 | 2025-01-03 05:47:06 |
| 合計ジャッジ時間 | 4,830 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 WA * 2 |
| other | AC * 17 WA * 37 |
コンパイルメッセージ
No syntax errors detected in Main.php
ソースコード
<?php
// 黒板に N 個の整数 が書かれています.引き算が得意なゅゅちゃんは 0 以上 N-1 以下の任意の回数,以下の操作を繰り返すことができます.
// 黒板に書かれている数を 2 つ選んで消す.消した数を として, と x-y, y-x のどちらか一方を黒板に書く.
// この操作によって,黒板に書かれている数に K が含まれている状態にすることができるか判定してください.
list($n, $k) = explode(" ", trim(fgets(STDIN)));
$list = explode(" ", trim(fgets(STDIN)));
if (in_array($k, $list)) echo 'Yes';
$res = false;
// 順列
function permutations(array $elements) {
global $n, $k, $res;
if ($exit) return;
if (count($elements) <= 1) {
yield $elements;
} else {
foreach (permutations(array_slice($elements, 1)) as $permutation) {
foreach (range(0, count($elements) - 1) as $i) {
$p = array_merge( array_slice($permutation, 0, $i), [$elements[0]], array_slice($permutation, $i) );
if (count($p) < $n) {
yield $p;
} else {
$r = [];
foreach($p as $v) {
if (empty($r)) {
$r = [$v, -$v];
} else {
$t = [];
foreach($r as $rr) {
$t[] = $rr + $v;
$t[] = $rr - $v;
}
$r = array_unique($t);
if (in_array($k, $r)) {
$res = true;
return;
}
unset($t);
}
}
}
}
}
}
}
permutations($list);
echo $res?"Yes":"No";
yulianess27__