「シカ……格子状……京都か!!!」ABC086C

目次

 

問題

atcoder.jp

この問題の舞台は京都ですねきっと。 

 回答


# 整数の入力
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提出を見たら、内容の理解はできます。

 

 

f:id:mt4proconkai:20200731095055j:plain

大半がACですが、14個のうち2個だけWAになります。