Codeforces Round #160 (Div. 2)
http://www.codeforces.com/contest/262/
またまたA,B問題だけ。
A. Roma and Lucky Numbers
n個の整数値からなる配列が与えられる。
配列に含まれる数字のうち、各桁の"4"と"7"の合計がkを超えないものの数をカウントせよ。
n, k = gets.chomp.split(" ").map{|n| n.to_i} digits = gets.chomp.split(" ") c = 0 digits.each do |a| c+=1 if a.count("4") + a.count("7") <= k end puts c
B. Roma and Changing Signs
n個の数字a(|a| <= 10 ** 4)からなる配列が与えらえる。
この配列の中の任意の項に対し、k回-1を掛ける。
この操作を行った上で得られる配列の合計値を求めよ。
n, k = gets.chomp.split(" ").map{|n| n.to_i} sequence = gets.chomp.split(" ").map{|n| n.to_i} sequence.sort! i = 0 k.times do break if i >= n or sequence[i] >= 0 sequence[i] *= -1 i += 1 end if (k - i) > 0 sequence.sort! if (k - i) % 2 == 1 sequence[0] *= -1 end end puts sequence.inject{|sum, i| sum+= i}