Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.26 KB | None | 0 0
  1.  
  2.  
  3. gsn = 8979
  4. #gsn = 18
  5. table = {}
  6. def getpower(x,y):
  7.     if (x,y) in table:
  8.         return table[(x,y)]
  9.     if x >= 301 or y >= 301 or x <= 0 or y <= 0:
  10.         return 0
  11.     rackid = x + 10
  12.     power = y * rackid
  13.     power += gsn
  14.     power *= rackid
  15.     #print(power)
  16.     power = power//100 % 10
  17.     #print(power)
  18.     power -= 5
  19.     table[(x,y)] = power
  20.     return power
  21.  
  22. mtp = 0
  23. mtpxy = None
  24. sumfromleft = defaultdict(lambda: 0)
  25. sumfromtop = defaultdict(lambda: 0)
  26.  
  27. for y in range(1, 301):
  28.     for x in range (1, 301):
  29.         p = getpower(x,y)
  30.         sumfromleft[(x, y)] = p + sumfromleft[(x - 1, y)]
  31. for x in range(1, 301):
  32.     for y in range (1, 301):
  33.         p = getpower(x,y)
  34.         sumfromtop[(x, y)] = p + sumfromtop[(x, y - 1)]
  35.  
  36.  
  37. mtp = 0
  38. mtpxy = None
  39. for y in range(1, 301):
  40.     for x in range(1, 301):
  41.         p = 0
  42.         p = getpower(x, y)
  43.         for r in range(1, min(301 - x, 301 - y)):
  44.             # last row
  45.             p += sumfromleft[x + r, y + r] - sumfromleft[x - 1, y + r]
  46.             # last column
  47.             p += sumfromtop[x + r, y + r] - sumfromtop[x + r, y - 1]
  48.             p -= getpower(x + r, y + r)
  49.             if p > mtp:
  50.                 mtp = p
  51.                 mtpxy = (x,y, r + 1)
  52.     print(x,y, mtpxy)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement