Я пытаюсь ответить на непростой вопрос о координатах в течение времени отклика 100 мс. Я получил следующие значения через STDIN
, и мне сказали ответить направлением ("NE"
, "W"
и т. Д.).Как я могу ускорить работу с помощью тернарного оператора?
@light_x, @light_y, @initial_tx, @initial_ty = gets.split(" ").collect {|x| x.to_i}
Я пытаюсь понять, почему эта попытка таймаут:
print @light_y > @initial_ty ? "S" : "N" unless @light_y == @initial_ty
print @light_x > @initial_tx ? "E" : "W" unless @light_x == @initial_tx
в то время как эта попытка не будет:
if @light_x > @initial_tx && @light_y > @initial_ty
puts "SE"
elsif @light_x < @initial_tx && @light_y > @initial_ty
puts "SW"
elsif @light_x > @initial_tx && @light_y < @initial_ty
puts "NE"
elsif @light_x < @initial_tx && @light_y < @initial_ty
puts "NW"
elsif @light_x < @initial_tx && @light_y == @initial_ty
puts "W"
elsif @light_x > @initial_tx && @light_y == @initial_ty
puts "E"
elsif @light_y > @initial_ty && @light_x == @initial_tx
puts "S"
elsif @light_y < @initial_ty && @light_x == @initial_tx
puts "N"
else
end
Есть ли способ, чтобы ускорить мой тройного или я иду об этом неправильно?
Это потому, что вы используете печать вместо того, чтобы помещать первый блок кода. Наслаждайтесь codeingame.com? – rwilliams
Вы могли бы разместить образец ввода? Я подозреваю, что это из-за ключевых слов, кроме ключевых слов. Не уверен, хотя – oreoluwa
Вы оценили, какая часть вашего кода на самом деле слишком медленная? 'split',' collect', условные обозначения или вывод? – spickermann