Задание по программированию: Складирование ноутбуков на Python

657 просмотра
0

Я не могу обнаружить ошибку в коде. Помогите найти ошибку (код ниже, после задания):

На склад, который имеет форму прямоугольного параллелепипеда, привезли ноутбуки, упакованные в коробки. Каждая коробка также имеет
форму прямоугольного параллелепипеда. По правилам хранения коробки с
ноутбуками должны быть размещены на складе с выполнением следующих
двух условий:

  • Стороны коробок должны быть параллельны сторонам склада.
  • Коробку при помещении на склад разрешается расположить где угодно (с
    выполнением предыдущего условия), в том числе на другой коробке, но все
    коробки должны быть ориентированы одинаково (т.е. нельзя одну коробку
    расположить “стоя”, а другую —“лежа”)

Напишите программу, которая по размерам склада и размерам коробки с ноутбуком > определит максимальное количество ноутбуков, которое может быть размещено на
складе.

Формат ввода

Программа получает на вход шесть натуральных чисел. Первые три задают
длину, высоту и ширину склада. Следующие три задают соответственно
длину, высоту и ширину коробки с ноутбуком.

Формат вывода

Программа должна вывести одно число — максимальное количество
ноутбуков, которое может быть размещено на складе.

Примеры

Тест 1
Входные данные: 100 200 300 1 2 3
Вывод программы: 1000000
 
Тест 2
Входные данные: 100 200 300 3 2 1
Вывод программы: 1000000
 
Тест 3
Входные данные: 100 100 1 2 2 2
Вывод программы:
 
Тест 4 Входные данные: 7 7 7 3 3 3
Вывод программы: 8

a = int(input())
# while a != -1:
b = int(input())
c = int(input())
x = int(input())
y = int(input())
z = int(input())
m1 = int(a // x) * int(b // y) * int(c // z)
m2 = int(a // x) * int(b // z) * int(c // y)
m3 = int(a // y) * int(b // a) * int(c // z)
m4 = int(a // y) * int(b // z) * int(c // x)
m5 = int(a // z) * int(b // a) * int(c // y)
m6 = int(a // z) * int(b // y) * int(c // x)
if a >= x and b >= y and c >= z:
    if m1 > m2 and m1 > m3 and m1 > m4 and m1 > m5 and m1 > m6:
        print(m1)
    elif m2 > m3 and m2 > m4 and m2 > m5 and m2 > m6:
        print(m2)
    elif m3 > m4 and m3 > m5 and m3 > m6:
        print(m3)
    elif m4 > m5 and m4 > m6:
        print(m4)
    elif m5 > m6:
        print(m5)
    else:
        print(m6)
else:
    print(0)
# a = int(input())


Добавить комментарий

1 Ответы

Python Опубликовано 16.12.2018
0

Привет! Мое решение, только на if.

a1 = int(input())
b1 = int(input())
c1 = int(input())
x = int(input())
y = int(input())
z = int(input())
 
d1 = (a1 // x) * (b1 // y) * (c1 // z)
d2 = (a1 // x) * (c1 // y) * (b1 // z)
d3 = (b1 // x) * (c1 // y) * (a1 // z)
d4 = (b1 // x) * (a1 // y) * (c1 // z)
d5 = (c1 // x) * (a1 // y) * (b1 // z)
d6 = (c1 // x) * (b1 // y) * (a1 // z)
 
if d1 >= d2:
    d2 = d1
if d3 >= d4:
    d4 = d2
if d5 >= d6:
    d6 = d5
 
if d2 >= d4 and d2 >= d6:
    print(d2)
elif d4 >= d6:
    print(d4)
else:
    print(d6)

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up