結果
問題 | No.325 マンハッタン距離2 |
ユーザー |
|
提出日時 | 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
ソースコード
def solve(x1,y1,x2,y2,d)#p [x1,y1,x2,y2,d]return solve(-x2,y1,-x1,y2,d) if x1 < 0 && x2 < 0return solve(x1,-y2,x2,-y1,d) if y1 < 0 && y2 < 0return solve(0,y1,x2,y2,d)+solve(1,y1,-x1,y2,d) if x1 < 0return solve(x1,0,x2,y2,d)+solve(x1,1,x2,-y1,d) if y1 < 0def calc(d); (d+1)*(d+2)/2; endreturn 0 if x1+y1 > dd -= x1+y1x2-=x1y2-=y1z = calc(d)z -= calc(d-y2-1) if d>y2z -= calc(d-x2-1) if d>x2z += 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]zendwhile cin = getsp solve(*(cin.split.map(&:to_i)))end