我正在 codechef 中尝试这个问题 - http://www.codechef.com/OCT12/problems/DRGNBOOL
这是我的解决方案
def array_sum(a)
sum=0
a.each do |x|
sum=sum+x
end
return sum
end
number_of_test_cases=gets.to_i
number_of_test_cases.times do
n_and_m=gets.split(" ")
n=n_and_m[0].to_i
m=n_and_m[1].to_i
soints=Hash.new{|h, k| h[k]=[]}
sofloats=Hash.new{|h, k| h[k]=[]}
n.times do
x=gets.split(" ")
a=x.first.to_i
b=x.last
soints[b].push(a)
end
m.times do
x=gets.split(" ")
a=x.first.to_i
b=x.last
sofloats[b].push(a)
end
result=0
soints.each_pair do |k, v|
if v.size>1
max_value=sofloats[k].max
v.each do |val|
if val<max_value
result=result+(max_value-val)
val=max_value
end
end
end
l=array_sum(v)
k=array_sum(sofloats[k])
if l<k
result=result+(k-l)
end
end
puts result
end
我在提交时收到“错误答案”。我的解决方案适用于给定的情况。任何人都可以提供我的解决方案失败的测试用例吗?