結果
| 問題 |
No.1538 引きこもりさんは引き算が得意。
|
| コンテスト | |
| ユーザー |
yulianess27__
|
| 提出日時 | 2021-06-17 18:15:54 |
| 言語 | PHP (843.2) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,953 bytes |
| コンパイル時間 | 1,167 ms |
| コンパイル使用メモリ | 36,376 KB |
| 実行使用メモリ | 36,632 KB |
| 最終ジャッジ日時 | 2025-01-03 05:15:00 |
| 合計ジャッジ時間 | 6,396 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 WA * 1 |
| other | AC * 29 WA * 25 |
コンパイルメッセージ
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';
// 順列
function permutations(array $elements)
{
global $k;
if (count($elements) <= 1) {
yield $elements;
} else {
foreach (permutations(array_slice($elements, 1)) as $permutation) {
foreach (range(0, count($elements) - 1) as $i) {
// yield array_merge(
// array_slice($permutation, 0, $i),
// [$elements[0]],
// array_slice($permutation, $i)
// );
$p = array_merge(
array_slice($permutation, 0, $i),
[$elements[0]],
array_slice($permutation, $i)
);
foreach($p as $v) {
$r = [];
if (empty($r)) {
$r = [$v, -$v];
} else {
$t = [];
foreach($r as $rr) {
$t[] = $rr + $v;
$t[] = $rr - $v;
}
if (in_array($k, $r)) {
return true;
}
$r = array_unique($t);
}
}
}
}
}
}
$ret = permutations($list);
echo $ret?"Yes":"No";
yulianess27__