結果
| 問題 |
No.325 マンハッタン距離2
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-12-19 06:11:02 |
| 言語 | Ruby (3.4.1) |
| 結果 |
AC
|
| 実行時間 | 119 ms / 1,000 ms |
| コード長 | 369 bytes |
| コンパイル時間 | 133 ms |
| コンパイル使用メモリ | 7,296 KB |
| 実行使用メモリ | 12,160 KB |
| 最終ジャッジ日時 | 2024-12-26 16:35:02 |
| 合計ジャッジ時間 | 3,649 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 24 |
コンパイルメッセージ
Syntax OK
ソースコード
#!/usr/bin/ruby
x1,y1,x2,y2,d=gets.split.map(&:to_i)
x1,x2=-x2,-x1 if x2<0
y1,y2=-y2,-y1 if y2<0
x1,x2,d=0,x2-x1,d-x1 if x1>0
y1,y2,d=0,y2-y1,d-y1 if y1>0
if d<0
p 0
exit
end
r=[d,x2].min+[d,-x1].min+[d,y2].min+[d,-y1].min+1
[-x1,x2].product([-y1,y2]){|x,y|
x-=1
y-=1
d0=[d-2,x+y].min
r+=(d0+1)*(d0+2)/2
r-=(d0-x)*(d0-x+1)/2 if x<d0
r-=(d0-y)*(d0-y+1)/2 if y<d0
}
p r