結果
| 問題 |
No.325 マンハッタン距離2
|
| コンテスト | |
| ユーザー |
ayame_py
|
| 提出日時 | 2016-01-04 00:25:44 |
| 言語 | Python2 (2.7.18) |
| 結果 |
AC
|
| 実行時間 | 10 ms / 1,000 ms |
| コード長 | 871 bytes |
| コンパイル時間 | 113 ms |
| コンパイル使用メモリ | 7,040 KB |
| 実行使用メモリ | 6,272 KB |
| 最終ジャッジ日時 | 2024-09-19 11:04:07 |
| 合計ジャッジ時間 | 1,167 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 24 |
ソースコード
def sumn(n): return n*(n+1)/2
x1,y1,x2,y2,d=map(int,raw_input().split())
if x1>=0: xx=[[x1,x2]]
elif x2<=0:xx=[[-x2,-x1]]
else:xx=[[1,-x1],[0,x2]]
if y1>=0: yy=[[y1,y2]]
elif y2<=0:yy=[[-y2,-y1]]
else:yy=[[1,-y1],[0,y2]]
ans=0
for x in xx:
for y in yy:
if x[0]+y[0]>d:continue
if x[1]+y[1]<=d:
ans+=(x[1]-x[0]+1)*(y[1]-y[0]+1)
continue
if x[1]+y[0] >= d:
if x[0]+y[1]>=d:
tx=d-y[0]
ans+=sumn(tx-x[0]+1)
else:
tx=d-y[1]
e=y[1]-y[0]+1
ans+=sumn(e)+e*(tx-x[0])
else:
if x[0]+y[1]>=d:
ty=d-x[1]
e=x[1]-x[0]+1
ans+=sumn(e)+e*(ty-y[0])
else:
tx=d-y[1]
ans+=(x[1]-x[0]+1)*(y[1]-y[0]+1)-sumn(x[1]-tx)
print ans
ayame_py