結果
| 問題 |
No.4 おもりと天秤
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-03-22 23:52:29 |
| 言語 | Ruby (3.4.1) |
| 結果 |
AC
|
| 実行時間 | 109 ms / 5,000 ms |
| コード長 | 774 bytes |
| コンパイル時間 | 200 ms |
| コンパイル使用メモリ | 7,552 KB |
| 実行使用メモリ | 12,160 KB |
| 最終ジャッジ日時 | 2024-06-26 09:27:22 |
| 合計ジャッジ時間 | 3,079 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 23 |
コンパイルメッセージ
Syntax OK
ソースコード
@n = gets.to_i
def sol w,ans,memo,sum,limit
if sum == limit
ans[sum] = true
return true
elsif sum > limit
return false
end
if ans[sum] != nil
return ans[sum]
end
@n.times{|i|
if !memo[i]
memo[i] = true
if sol(w,ans,memo,sum + w[i],limit)
ans[sum] = true
return true
end
memo[i] = false
end
}
ans[sum] = false
return false
end
w = gets.split.map(&:to_i).sort
sum = w.inject(:+)
if sum % 2 == 1
puts 'impossible'
else
limit = sum / 2
ans = Array.new(limit + 1)
memo = Array.new(@n,false)
if sol(w,ans,memo,0,limit)
puts 'possible'
else
puts 'impossible'
end
end