第19回オフラインリアルタイムどう書くの参考問題をRubyで解く
問題は
http://nabetani.sakura.ne.jp/hena/ord19sanwa/
def solve(q)
nums = q.split(',').map(&:to_i)
max_num = nums.max
sums = []
(1..max_num).each {|x|
(x..max_num).each {|y|
(y..max_num).each {|z|
sum = [x,y,z,x*2,y*2,z*2,x*3,y*3,z*3]
[x,y,z].combination(2){|a,b|
sum << a + b
}
[x,x,y,y,z,z].combination(3){|a,b,c|
sum << a + b + c
}
if ((nums & sum) == nums)
sums << [x,y,z]
end
}
}
}
case sums.size
when 0
'none'
when 1
sums[0].join(',')
else
'many'
end
end
puts Time.now
DATA.readlines.each do |line|
no,q,a = line.chop.split(/\s+/)
ans = solve(q)
print no + "\t" + ans
puts ans == a ? ' o' : ' x'
end
puts Time.now
__END__
0 3,11,12,102,111,120 1,10,100
1 10,20,30,35,70 many
2 1,5,20,80 none
3 1,2,3,4,5,6,7,8,9,10,11,12,13,14 many
4 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 1,4,5
Author And Source
この問題について(第19回オフラインリアルタイムどう書くの参考問題をRubyで解く), 我々は、より多くの情報をここで見つけました https://qiita.com/nidouchi/items/6f5694060d66cf8482d8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .