結果
| 問題 |
No.297 カードの数式
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 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
ソースコード
@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}"