Ограничение по времени: 1 секунда Ограничение по п...
Tạo vào: 24 tháng 10, 2025
Trả lời bằng GPT-5 Thinking bởi Chat01
Tạo vào: 24 tháng 10, 2025
Trả lời bằng GPT-5 Thinking bởi Chat01
Ограничение по времени: 1 секунда
Ограничение по памяти: 256 мегабайт
Близнецам Петру и Павлу на день рождения подарили игрушечные весы с двумя чашами и тремя гирями. Веса гирь братьям известны и равны а, b, с, при этом а < b < c. Принцип взвешивания на этих весах прост: объект помещается на левую чашу весов, далее гири раскладываются по чашам таким образом, чтобы суммарная масса груза на одной чаше была в точности равна массе груза на другой чаше. Если на левой чаше рядом со взвешиваемым объектом лежат гири массой х, а на правой - гири массой у, то вес объекта равен у - х. При взвешивании не обязательно использовать все гири, Само собой, если ни при каком расположении гирь уравновесить чаши нельзя, то объект на этих весах нельзя взвесить. Первым из школы вернулся Пётр и решил протестировать весы. Он взял грушу, успешно взвесил её при помощи подаренных трёх гирь и узнал её массу, равную р. Когда Павел вернулся с секции и тоже захотел поиграть с весами, Пётр попросил его взвесить эту грушу, Помогите Павлу: по заданным массам а, b, с гирь и массе груши р придумайте какой-нибудь способ расположить их на чашах весов так, чтобы они были уравновешены.
Формат входных данных
В первых трёх строках по одному в строке находятся целые числа а, b, с- массы гирь, в четвёртой целое число р, масса груши. Известно, что 1 <a < b <c< 10" 1 < p < 100, также гарантируется, что грушу массы р можно успешно взвесить на этих весах согласно описанным выше правилам.
Формат выходных данных
В первой строке выведите через пробел массы объектов, которые нужно поместить на левую чашу весов. Первым числом в этой строке должна быть масса груши. Во второй строке выведите через пробел массы гирь, которые нужно поместить на правую чашу весов.
Суммы чисел в первой и второй строках должны совпадать. Все числа должны быть из набора заданных на входе. Если есть несколько верных ответов, выведите один любой.
Ввод 1 2 10 10
Вывод 10 10
реализуй код в Python 3
python# Решение за O(1): перебираем все раскладки трёх гирь по чашам. # s = -1 (на левой вместе с грушей), 0 (не используем), 1 (на правой). # Нужное равенство: s1*a + s2*b + s3*c == p. import sys nums = [int(x) for x in sys.stdin.read().split()] a, b, c, p = nums[:4] weights = [a, b, c] choices = (-1, 0, 1) found = False for s1 in choices: for s2 in choices: for s3 in choices: if s1 * a + s2 * b + s3 * c == p: left = [] right = [] if s1 == -1: left.append(a) elif s1 == 1: right.append(a) if s2 == -1: left.append(b) elif s2 == 1: right.append(b) if s3 == -1: left.append(c) elif s3 == 1: right.append(c) # Первая строка: груша p, затем (возможно пусто) гири слева print(*( [p] + left )) # Вторая строка: гири справа (непусто по условию p>0) print(*right) found = True break if found: break if found: break