結果
| 問題 |
No.198 キャンディー・ボックス2
|
| コンテスト | |
| ユーザー |
siman
|
| 提出日時 | 2016-03-27 02:01:01 |
| 言語 | Ruby (3.4.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 843 bytes |
| コンパイル時間 | 68 ms |
| コンパイル使用メモリ | 7,424 KB |
| 実行使用メモリ | 12,288 KB |
| 最終ジャッジ日時 | 2024-10-02 01:13:58 |
| 合計ジャッジ時間 | 3,206 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 21 WA * 5 |
コンパイルメッセージ
Main.rb:3: warning: assigned but unused variable - remain Main.rb:11: warning: assigned but unused variable - answer Syntax OK
ソースコード
class Yukicoder
def initialize
remain = gets.to_i
n = gets.to_i
candy = []
n.times do
candy << gets.to_i
end
answer = 0
if candy.size == 1
puts "0"
return
end
a = 0
b = candy.max
answer = candy.inject(:+)
#0.upto(b) do |j|
# puts "num = #{candy.inject(0){|sum,i| sum += (j < i)? i-j : j-i}}"
#end
while a < b-2
c = a + (b-a)/3
d = [a + 2 * ((b-a)/3), b].min
v1 = candy.inject(0){|sum,i| sum += (c < i)? i-c : c-i}
v2 = candy.inject(0){|sum,i| sum += (d < i)? i-d : d-i}
if v1 < v2
b = d
else
a = c+1
end
end
min_val = Float::INFINITY
a.upto(b) do |j|
min_val = [min_val, candy.inject(0){|sum,i| sum += (j < i)? i-j : j-i}].min
end
puts min_val
end
end
Yukicoder.new
siman