結果

問題 No.325 マンハッタン距離2
ユーザー soupesuteaka
提出日時 2016-03-01 15:47:16
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 34 ms / 1,000 ms
コード長 892 bytes
コンパイル時間 322 ms
コンパイル使用メモリ 12,800 KB
実行使用メモリ 11,008 KB
最終ジャッジ日時 2024-09-24 13:08:32
合計ジャッジ時間 2,256 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 24
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#coding: UTF-8
import sys
import re
import itertools
from collections import deque
### defs ###
def swap(x,y):
x = x^y
y = x^y
x = x^y
return (x,y)
def count(xa,ya,d):
x1=xa[0]; x2=xa[1];
y1=ya[0]; y2=ya[1];
res=0
x = x2-x1
y = y2-y1
d = d - x1 - y1
if (d < 0):
return 0
if(x>y):
x,y=swap(x,y)
if (0 <= d and d <= x):
res = (d+2)*(d+1)//2
elif (x<=d and d<=y):
res = (d+2)*(d+1)//2 - (d-x)*(d-x+1)//2
elif (y<=d and d<=x+y):
res = (x+1)*(y+1) - (x+y-d)*(x+y-d+1)//2
elif (x+y <= d):
res = (x+1)*(y+1)
return res
### main ###
x1,y1,x2,y2,d = map(int, sys.stdin.readline().split())
if (x1>=0):
xs = [[x1,x2]]
elif (x2<=0):
xs = [[-x2,-x1]]
else:
xs = [[1,-x1],[0,x2]]
if (y1>=0):
ys = [[y1,y2]]
elif (y2<=0):
ys = [[-y2,-y1]]
else:
ys = [[1,-y1],[0,y2]]
ans = 0
for xarea in xs:
for yarea in ys:
ans += count(xarea,yarea,d)
print(int(ans))
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0