結果
問題 | No.325 マンハッタン距離2 |
ユーザー |
![]() |
提出日時 | 2016-01-04 00:19:41 |
言語 | Python2 (2.7.18) |
結果 |
AC
|
実行時間 | 10 ms / 1,000 ms |
コード長 | 872 bytes |
コンパイル時間 | 51 ms |
コンパイル使用メモリ | 6,912 KB |
実行使用メモリ | 6,272 KB |
最終ジャッジ日時 | 2024-09-19 11:00:06 |
合計ジャッジ時間 | 1,076 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 24 |
ソースコード
def sumn(n): return n*(n+1)/2x1,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=0for x in xx:for y in yy:if x[0]+y[0]>d:continueif x[1]+y[1]<=d:ans+=(x[1]-x[0]+1)*(y[1]-y[0]+1)continueif 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]+1ans+=sumn(e)+e*(tx-x[0])else:if x[0]+y[1]>=d:ty=d-x[1]e=x[1]-x[0]+1ans+=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