結果

問題 No.297 カードの数式
ユーザー Tsuneo Yoshioka
提出日時 2015-11-06 23:47:54
言語 Ruby
(3.4.1)
結果
AC  
実行時間 97 ms / 1,000 ms
コード長 1,475 bytes
コンパイル時間 720 ms
コンパイル使用メモリ 7,296 KB
実行使用メモリ 12,288 KB
最終ジャッジ日時 2024-12-26 02:22:16
合計ジャッジ時間 3,172 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 23
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #
プレゼンテーションモードにする

@nums=[]
@plus=0
@minus=0
gets
gets.split.each{|i|
if i=='+'
@plus += 1
elsif i=='-'
@minus +=1
else
@nums.push(i.to_i)
end
}
@nums.sort
def get_max(nums,plus,minus)
ops=@plus+@minus
nums = nums.sort.reverse
big = nums[0,nums.size-ops].join('').to_i
nums = [big] + nums[nums.size-ops,nums.size]
#puts "nums=#{nums}"
nums = nums.sort.reverse
val = nums.shift
nums.each{|n|
if(plus>0)
plus -=1
val += n
else
minus -=1
val -= n
end
}
return val
end
def get_min1(nums,plus,minus)
ops=@plus+@minus
nums = nums.sort.reverse
big = nums[0,nums.size-ops].join('').to_i
nums = [big] + nums[nums.size-ops,nums.size]
#puts "nums=#{nums}"
nums = nums.sort.reverse
val = -nums.shift
minus -=1
nums.each{|n|
if(minus>0)
minus-=1
val -= n
else
minus -=1
val += n
end
}
return val
end
def get_min2(nums,plus,minus)
ops=@plus+@minus
nums = nums.sort
parts = Array.new(ops+1,0)
i=0
nums.each{|n|
parts[i] *= 10
parts[i] += n
i+=1
i%=(ops+1)
}
total = parts.inject(&:+)
return total
end
ma = get_max(@nums.clone,@plus,@minus)
mi=999
if @minus>0
mi = get_min1(@nums.clone,@plus,@minus)
else
mi = get_min2(@nums.clone,@plus,@minus)
end
puts "#{ma} #{mi}"
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0