Advertisement
Guest User

Untitled

a guest
Feb 24th, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.16 KB | None | 0 0
  1. import argparse
  2. import random
  3.  
  4.  
  5. def parse(inp):
  6. # TODO: implement
  7. itr = (map(int, li.split()) for li in inp.split('\n'))
  8. r, s, u, p, m = next(itr)
  9. ulist = []
  10. mlist = []
  11. for i in range(u):
  12. ri, si = next(itr)
  13. ulist.append((ri,si))
  14. for i in range(m):
  15. zi,ci = next(itr)
  16. mlist.append((zi,ci))
  17.  
  18. return argparse.Namespace(r=r, s=s,u=u,p=p,m=m,ulist=ulist,mlist=mlist)
  19.  
  20.  
  21. def solve(seed, inp, log):
  22. # TODO: Solve the problem
  23. random.seed(seed)
  24. ns = parse(inp)
  25.  
  26. if (True):
  27. return """0 1 0
  28. 1 0 1
  29. 1 3 0
  30. 0 4 1
  31. x"""
  32.  
  33. return '0'
  34.  
  35.  
  36. def show(out):
  37. # TODO: Print the solution here
  38. print(out)
  39.  
  40.  
  41. def outparse(inp,m):
  42. itr = inp.split('\n')
  43. places = []
  44. for i in range(m):
  45. if itr[i] != 'x':
  46. ari, asi, api = [int(x) for x in itr[i].split()]
  47. places.append((ari,asi,api))
  48.  
  49. return argparse.Namespace(places=places)
  50.  
  51. def score(inp, out):
  52. # TODO: implement
  53.  
  54. ns = parse(inp)
  55. outs = outparse(out,ns.m)
  56. pools = [[] for i in range(ns.p)]
  57. for indx, tup in enumerate(outs.places):
  58. pools[tup[2]].append((tup[0],tup[1],indx))
  59. mintotal = 100000000000
  60. for pool in pools:
  61. totalcapacity = 0
  62. for tup in pool:
  63. totalcapacity += ns.mlist[tup[2]][1]
  64. maxremove = 0
  65. for row in range(ns.r):
  66. thisremove = 0
  67. for tup in pool:
  68. if (tup[0] == row):
  69. thisremove += ns.mlist[tup[2]][1]
  70. maxremove = max(maxremove,thisremove)
  71. mintotal = min(mintotal,totalcapacity-maxremove)
  72.  
  73.  
  74. if __name__ == '__main__' and args.s:
  75. show(out)
  76.  
  77. return mintotal
  78.  
  79.  
  80. def get_args():
  81. parser = argparse.ArgumentParser()
  82. parser.add_argument('inp')
  83. parser.add_argument('ans')
  84. parser.add_argument('-s', action='store_true', help="show")
  85. return parser.parse_args()
  86.  
  87.  
  88. if __name__ == '__main__':
  89. args = get_args()
  90.  
  91. with open(args.inp, 'r') as f:
  92. inp = f.read()
  93.  
  94. with open(args.ans, 'r') as f:
  95. ans = f.read()
  96.  
  97. print(score(inp, ans))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement