class Solution(object):
def val(self, n, x, y):
px=n-1-abs(2*x-n+1)
py=n-1-abs(2*y-n+1)
v=min(px,py)
if v>=n-1:
return n*n
v/=2
passv=(n-v)*v*4
if px>=py:
if y<=(n-1)/2:
return passv+x-y+1
else:
return passv+2*(n-2*v-1)-x+y+1
else:
if x>=n/2:
return passv-x+y+2*(n-2*v-1)+1
else:
return passv+x-y+(n-2*v-1)*4+1
def dump(self, mat):
for vs in mat:
print ["%3d"%v for v in vs]
def generateMatrix(self, n):
"""
:type n: int
:rtype: List[List[int]]
"""
ret=[]
for i in xrange(n):
item=[]
for j in xrange(n):
#print i,j,self.val(n,j,i)
item.append(self.val(n,j,i))
ret.append(item)
return ret