Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Олимпиада Напишите на Python пж

X X Ученик (95), на голосовании 4 дня назад
Задание 5. Геометрическая игра на планшете Маленький Андрей изучает геометрические фигуры при помощи игры на планшете. У него есть равнобедренные прямоугольные треугольники четырёх цветов и ориентаций: жёлтые, зелёные, красные и синие. Для каждой разновидности треугольников есть заданное количество экземпляров этих треугольников. Более точно, у Андрея есть a жёлтых, b зелёных, c красных и d синих треугольников. Известно, что a≥b≥c≥d. Все треугольники одинаковые по размеру, но у каждого есть своя ориентация, которую нельзя менять. Треугольники одного цвета имеют одну и ту же ориентацию. Помимо этого, у мальчика есть n пустых ячеек, стороны которых совпадают с катетами треугольников. Игра происходит пошагово, на каждом шаге Андрей может взять очередной треугольник и переместить его параллельным сдвигом в одну из ячеек. При этом в одну ячейку можно поместить либо вместе жёлтый и красный треугольники, либо вместе зелёный и синий, либо один любой треугольник из имеющихся. На каждом шаге можно переместить треугольник строго одного текущего цвета. Сначала это жёлтый, на следующем ходе зелёный, далее красный и затем синий. Далее снова жёлтый, зелёный, красный, синий и т.д по циклу. Если места для текущего цвета нет либо треугольники текущего цвета закончились, то этот цвет пропускается и ходит следующий по порядку цвет. Допустим, в данном шаге есть треугольник текущего цвета. Если ещё есть пустая ячейка, данный треугольник обязательно помещается в эту ячейку. Если пустые ячейки закончились, но есть полупустая ячейка с парным текущему цветом, то треугольник помещается в неё. Игра длится до тех пор, пока есть цвет, который можно поместить в какую‑то ячейку. Определите, сколько каких треугольников Андрей распределит в конечном итоге по ячейкам. Формат входных данных На вход подаются четыре числа a, b, c, d, каждое в своей строке. Гарантируется, что a≥b≥c≥da≥b≥c≥d. В пятой строке содержится число n количество пустых ячеек. 1≤a, b, c, d≤1018, 1≤n≤1018. Обратите внимание, что значения переменных в этой задаче могут превышать возможные значения 32-битной целочисленной переменной, поэтому необходимо использовать 6464-битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C++, long в Java и C#). Формат выходных данных Выведите ответ в четыре строки: для каждого соответствующего цвета укажите, сколько треугольников этого цвета получится поместить в ячейки. В первую строку выведите число жёлтых треугольников, во вторую зелёных, в третью красных и в четвёртую синих.
Голосование за лучший ответ
chipsik 202 Ученик (204) 1 месяц назад
Остальное в тг канале
Владислав Внучко Ученик (95) 1 месяц назад
 def allocate_triangles(a, b, c, d, n): 
# Максимально возможное количество желтых и красных
yellow_red = min(a + c, n)
# Максимально возможное количество зеленых и синих
green_blue = min(b + d, n)

yellow = min(a, yellow_red)
red = min(c, yellow_red - yellow)

green = min(b, green_blue)
blue = min(d, green_blue - green)

return yellow, green, red, blue

a = int(input("Введите количество желтых треугольников: "))
b = int(input("Введите количество зеленых треугольников: "))
c = int(input("Введите количество красных треугольников: "))
d = int(input("Введите количество синих треугольников: "))
n = int(input("Введите количество ячеек: "))

yellow, green, red, blue = allocate_triangles(a, b, c, d, n)

print(f"{yellow}\n{green}\n{red}\n{blue}")
Похожие вопросы