Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''
- HURRY !!!! loooda
- backtracking
- and recursion
- '''
- maxTasksCount=0
- def swap(i, j):
- t = tasks[i]
- tasks[i] = tasks[j]
- tasks[j] = t
- def howManyTasks(startMoney, tasks):
- count = 0
- currentPlace = 0
- for i in range(len(tasks)):
- currentPenalty = 2*(abs(tasks[i][0]-currentPlace)) + tasks[i][1]
- if startMoney >= currentPenalty:
- count = count + 1
- startMoney = startMoney - currentPenalty
- currentPlace = tasks[i][0]
- else :
- return count
- def fun(k, l):
- global maxTasksCount
- if l == 0:
- count = howManyTasks(startMoney, tasks)
- print(tasks, count)
- maxTasksCount = max(maxTasksCount, count)
- return
- for i in range(k, len(tasks)):
- swap(k, i)
- fun(k+1, l-1)
- swap(k, i)
- startMoney = 11
- tasks = [[3,11], [2,1], [5, 2]]
- fun(0, len(tasks))
- print(maxTasksCount)
- startMoney = 15
- tasks = [[3,11], [2,1], [5, 2]]
- fun(0, len(tasks))
- print(maxTasksCount)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement