結果
| 問題 |
No.1538 引きこもりさんは引き算が得意。
|
| コンテスト | |
| ユーザー |
siman
|
| 提出日時 | 2022-09-11 09:34:10 |
| 言語 | Ruby (3.4.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 493 bytes |
| コンパイル時間 | 498 ms |
| コンパイル使用メモリ | 7,296 KB |
| 実行使用メモリ | 17,408 KB |
| 最終ジャッジ日時 | 2024-11-27 17:55:06 |
| 合計ジャッジ時間 | 8,055 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 45 WA * 9 |
コンパイルメッセージ
Syntax OK
ソースコード
N, K = gets.split.map(&:to_i)
A = gets.split.map(&:to_i)
def dfs(i, e, sum, memo)
if i == e
memo[sum] = true
else
dfs(i + 1, e, sum - A[i], memo)
dfs(i + 1, e, sum, memo)
dfs(i + 1, e, sum + A[i], memo)
end
end
memo1 = Hash.new
memo2 = Hash.new
mid = N / 2
dfs(0, mid, 0, memo1)
dfs(mid, N, 0, memo2)
if memo1[K] || memo2[K]
puts 'Yes'
exit
else
memo1.each_key do |k|
if memo2[K - k] || memo2[k - K]
puts 'Yes'
exit
end
end
end
puts 'No'
siman