Advertisement
BenjaminWade

ambrosio

May 11th, 2023
1,081
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.82 KB | Software | 0 0
  1. def max_items(items, money):
  2.     # Classificar os itens em ordem crescente de preço
  3.     sorted_items = sorted(items, key=lambda x: x[1])
  4.     # Iniciar uma variável contador de itens comprados
  5.     count = 0
  6.     # Iniciar uma lista para armazenar os itens comprados
  7.     chosen_items = []
  8.     # Percorrer a lista de itens em ordem crescente de preço
  9.     for item in sorted_items:
  10.         # Verificar se o dinheiro restante é maior ou igual ao preço do item
  11.         if money >= item[1]:
  12.             # Incrementar o contador de itens comprados
  13.             count += 1
  14.             # Adicionar o item à lista de itens comprados
  15.             chosen_items.append(item[0])
  16.             # Subtrair o preço do item do dinheiro restante
  17.             money -= item[1]
  18.         # Se o dinheiro restante for insuficiente para comprar o item, passar para o próximo item
  19.         else:
  20.             continue
  21.     # Retornar o número máximo de itens que podem ser comprados, os itens escolhidos e o dinheiro restante
  22.     return count, chosen_items, money
  23.  
  24.  
  25.  
  26. def print_items(items, chosen_items, money_left):
  27.     # Criar uma lista com os itens escolhidos e seus preços
  28.     chosen_items_with_price = [(item[0], item[1]) for item in items if item[0] in chosen_items]
  29.     # Ordenar a lista em ordem alfabética dos produtos
  30.     chosen_items_with_price = sorted(chosen_items_with_price, key=lambda x: x[0])
  31.     # Imprimir a nova lista
  32.     for item in chosen_items_with_price:
  33.         print(item[0], item[1])
  34.     # Imprimir o dinheiro que sobrou
  35.     print(money_left)
  36.  
  37.  
  38.  
  39. items = [("CARRINHOS", 999.99), ("PRATELEIRAS", 570.00),("ESTANTES", 359.99), ("CAIXAS_C_ESTEIRA", 3900)]
  40. money = 5000.00
  41.  
  42. count, chosen_items, money_left = max_items(items, money)
  43. print_items(items, chosen_items, money_left) # Saída: item1 10, item2 5, item4 15, 0
  44.  
  45.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement