説明超え:私はfast-rubyを使用Kattis電話リスト、時間制限は、問題の
# get phone list and return true if list consistent or false if not
def consistent?(phone_list)
index = 0
last_phone = phone_list.last
phone_list.each do |phone|
index += 1
unless last_phone == phone
return true if phone.length == last_phone.length
return false if phone_list.drop(index).find { |ph| ph.start_with? phone }
end
end
true
end
# read file and parse settings
input = File.open('phone.in', &:read).split("\n")
# input = STDIN.read.split("\n")
settings = input.slice!(0, 2).map(&:to_i)
error_t = 'Testcase numbers need to be in range 1 to 40.'
error_n = 'Phone numbers need to be in range 1 to 10000.'
error_p = 'Phonenumber is longer than 10 digits or less then 1.'
error_u = 'Phonenumbers set is not uniq'
STDERR.puts(error_t) if settings[0] < 1 || settings[0] > 40
# iterate throw input and agregate results to output
settings[0].times do
STDERR.puts(error_n) if settings[1] < 1 || settings[1] > 10_000
phone_set = input.slice!(0, settings[1])
STDERR.puts(error_u) unless phone_set.uniq.length == phone_set.length
result = consistent?(phone_set.sort_by do |phone|
STDERR.puts(error_p) if phone.length > 10 || phone.empty?
phone.length
end)
puts result ? 'YES' : 'NO'
settings[1] = input.slice!(0).to_i
end
:link
私のソリューションを。ハマった。あなたのアルゴリズムを改善する助けをするなら、私は非常に感謝します。
私は怠惰ではありません。私はこの仕事のために2日を過ごした後、助けに行きました。そして、私はこのサイトがこのような状況のために作られたと思います。 –
このサイトは、自分で質問を書くことができるユーザーのためのものであり、質問にリンクしている人だけでなく、自分でそれを綴ることさえもしません。 – sawa