Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- sys.setrecursionlimit(10**7)
- linha = input().split()
- n = int(linha[0])
- m = int(linha[1])
- resp=10**12
- vacas = []
- ac = []
- def confortavel(atual):
- for i in range(n):
- for j in range(vacas[i][0], vacas[i][1]+1, 1):
- if atual[j]<vacas[i][2]:
- return False
- return True
- def backtracking(pos, custo, atual):
- global resp
- if pos==m:
- if confortavel(atual):
- resp=min(resp, custo)
- return
- for i in range(ac[pos][0], ac[pos][1]+1, 1):
- atual[i]+=ac[pos][2]
- backtracking(pos+1, custo+ac[pos][3], atual)
- for i in range(ac[pos][0], ac[pos][1]+1, 1):
- atual[i]-=ac[pos][2]
- backtracking(pos+1, custo, atual)
- atual = [0]*100
- for i in range(n):
- vacas.append(input().split())
- vacas[i][0]=int(vacas[i][0])
- vacas[i][1]=int(vacas[i][1])
- vacas[i][2]=int(vacas[i][2])
- for i in range(m):
- ac.append(input().split())
- ac[i][0]=int(ac[i][0])
- ac[i][1]=int(ac[i][1])
- ac[i][2]=int(ac[i][2])
- ac[i][3]=int(ac[i][3])
- backtracking(0, 0, atual)
- print(resp)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement