Advertisement
leanchec

AC II

Nov 27th, 2024 (edited)
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.11 KB | None | 0 0
  1. import sys
  2. sys.setrecursionlimit(10**7)
  3.  
  4. linha = input().split()
  5. n = int(linha[0])
  6. m = int(linha[1])
  7. resp=10**12
  8. vacas = []
  9. ac = []
  10.  
  11. def confortavel(atual):
  12.     for i in range(n):
  13.         for j in range(vacas[i][0], vacas[i][1]+1, 1):
  14.             if atual[j]<vacas[i][2]:
  15.                 return False
  16.     return True
  17.  
  18. def backtracking(pos, custo, atual):
  19.     global resp
  20.     if pos==m:
  21.         if confortavel(atual):
  22.             resp=min(resp, custo)
  23.         return
  24.  
  25.     for i in range(ac[pos][0], ac[pos][1]+1, 1):
  26.         atual[i]+=ac[pos][2]
  27.  
  28.     backtracking(pos+1, custo+ac[pos][3], atual)
  29.  
  30.     for i in range(ac[pos][0], ac[pos][1]+1, 1):
  31.         atual[i]-=ac[pos][2]
  32.  
  33.     backtracking(pos+1, custo, atual)
  34.  
  35. atual = [0]*100
  36.  
  37. for i in range(n):
  38.     vacas.append(input().split())
  39.     vacas[i][0]=int(vacas[i][0])
  40.     vacas[i][1]=int(vacas[i][1])
  41.     vacas[i][2]=int(vacas[i][2])
  42.  
  43. for i in range(m):
  44.     ac.append(input().split())
  45.     ac[i][0]=int(ac[i][0])
  46.     ac[i][1]=int(ac[i][1])
  47.     ac[i][2]=int(ac[i][2])
  48.     ac[i][3]=int(ac[i][3])
  49.  
  50. backtracking(0, 0, atual)
  51.  
  52. print(resp)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement