「シカ……格子状……京都か!!!」ABC086C
目次
問題
この問題の舞台は京都ですねきっと。
回答
# 整数の入力
n = gets.to_i
# point[0]に、「t = 0のとき点(0, 0)にいる」という情報を持たせる
point = []
point[0] = [0, 0, 0]
# スペース区切りの整数の入力
for i in 1..n do
point[i] = gets.chomp.split.map(&:to_i);
end
# 出力を仮に"Yes"とする
ans = 'Yes'
# シカのAtCoDeerくんが訪れた地点の間の距離と所要時間について検証
(n - 1).times do |j|
# ある時刻から、次の時刻までの時間(== 総移動距離)
actual_t = point[j+1][0] - point[j][0]
# ある時刻の座標と、次の時刻の座標の間の「X軸方向の距離 + Y軸方向の距離」
min_t = (point[j+1][1] - point[j][1]).abs + (point[j+1][2] - point[j][2]).abs
# もし「その時間でその距離は移動できない」か「求めた2つの値の差が奇数」なら
if actual_t < min_t
ans = 'No'
elsif (actual_t - min_t).odd?
ans = 'No'
end
end
puts ans
助けてください><
競プロにお詳しいそこのあなた! 助けてください!
上記コード のどこかを修正すればACとれますか?
これ以上は直せませんか?
C++で書かれた解説サイトを見てもこれ以上わかりません。
他の方のAC提出を見たら、内容の理解はできます。