結果
| 問題 |
No.325 マンハッタン距離2
|
| コンテスト | |
| ユーザー |
ayame_py
|
| 提出日時 | 2016-01-04 00:17:27 |
| 言語 | Python2 (2.7.18) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 870 bytes |
| コンパイル時間 | 652 ms |
| コンパイル使用メモリ | 6,912 KB |
| 実行使用メモリ | 6,272 KB |
| 最終ジャッジ日時 | 2024-09-19 11:00:04 |
| 合計ジャッジ時間 | 2,316 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 11 RE * 13 |
ソースコード
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:x=[[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