結果

問題 No.325 マンハッタン距離2
ユーザー mai
提出日時 2017-08-28 23:20:45
言語 Ruby
(3.4.1)
結果
AC  
実行時間 93 ms / 1,000 ms
コード長 646 bytes
コンパイル時間 55 ms
コンパイル使用メモリ 7,552 KB
実行使用メモリ 12,416 KB
最終ジャッジ日時 2024-11-06 08:38:44
合計ジャッジ時間 3,331 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 24
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #
プレゼンテーションモードにする

def solve(x1,y1,x2,y2,d)
#p [x1,y1,x2,y2,d]
return solve(-x2,y1,-x1,y2,d) if x1 < 0 && x2 < 0
return solve(x1,-y2,x2,-y1,d) if y1 < 0 && y2 < 0
return solve(0,y1,x2,y2,d)+solve(1,y1,-x1,y2,d) if x1 < 0
return solve(x1,0,x2,y2,d)+solve(x1,1,x2,-y1,d) if y1 < 0
def calc(d); (d+1)*(d+2)/2; end
return 0 if x1+y1 > d
d -= x1+y1
x2-=x1
y2-=y1
z = calc(d)
z -= calc(d-y2-1) if d>y2
z -= calc(d-x2-1) if d>x2
z += calc(d-y2-x2-2) if d>y2+x2
#p ['',calc(d),calc(d-y2-1),calc(d-x2-1),calc(d-y2-x2-2),z]
z
end
while cin = gets
p solve(*(cin.split.map(&:to_i)))
end
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0