
Задача 2: Гирьки У Васи есть чашечные весы и набор гирек. Правда, в наборе предусмотрены гирьки
только двух различных весов: 1 и 2 грамма. Набор не пустой, но гирьки одного из весов могут быть потеряны и полностью отсутствовать. Вася пытается разложить все имеющиеся гирьки на обе чаши весов так, чтобы весы оказались в равновесии (то есть разложить все гирьки на две кучки одинакового веса). Оказалось, что у него имеется n1 гирек весом 1 грамм и n2 гирек весом 2 грамма. Получится ли у него это? Входные данные В первой строке входных данных записано целое число n1, во второй — n2 (n1 ≥ 0, n2 ≥ 0, 0 < n1 + n2 ≤ 2×109). Выходные данные Если разложить гирьки на две равные кучки возможно, пограмма должна вывести слово Yes, в противном случае — No. Если гирьки разложить возможно, то во второй строке требуется вывести два целых числа в указанном порядке: количество гирек весом 1 грамм и количество гирек весом 2 грамма в одной из кучек в разложении. Если вариантов разложения несколько, требуется вывести любой из них. Система оценки Решение, правильно работающее, когда входные числа не превосходят 10, будет оцениваться в 30 баллов. Примеры Ввод Вывод Пояснение 2 1 Yes 0 1 Также правильным ответом будет Yes 2 0 1 2 No

Ответы на вопрос

Ответ:
Объяснение:
n1=int(input())
n2=int(input())
if (n1+n2*2)%2==1:
print("No")
else:
print("Yes")
if ((n1+n2*2)//2)%2==0:
if n2*2<n1:
print((n1+n2*2)//2-n2*2,n2)
elif n2*2>n1:
print(n1,((n1+n2*2)//2-n1)//2)
else:
print(n1,0)
else:
if n2*2<n1:
print((n1+n2*2)//2-n2*2,n2)
elif n2*2>n1:
print(n1-1,((n1+n2*2)//2-n1+1)//2)
else:
print(n1,0)



Для решения данной задачи можно использовать следующий подход:
Проверяем, является ли сумма количества гирек весом 1 грамм и 2 грамма четным числом. Если сумма нечетная, то невозможно разделить гирьки на две равные кучки, и мы выводим "No".
Если сумма четная, проверяем следующие случаи:
- Если количество гирек весом 1 грамм и 2 грамма одинаково, то можем просто разделить гирьки пополам. Выводим "Yes" и количество гирек 1 грамм в одной кучке (равное n1/2) и количество гирек 2 грамма в другой кучке (равное n2/2).
- Если количество гирек весом 1 грамм больше количества гирек весом 2 грамма, то раздаем все гирьки весом 2 грамма равномерно на обе кучки. Выводим "Yes" и количество гирек 1 грамм в одной кучке (равное (n1 - n2/2)) и количество гирек 2 грамма в другой кучке (равное n2/2).
- Если количество гирек весом 2 грамма больше количества гирек весом 1 грамм, то раздаем все гирьки весом 1 грамм равномерно на обе кучки. Выводим "Yes" и количество гирек 1 грамм в одной кучке (равное n1/2) и количество гирек 2 грамма в другой кучке (равное (n2 - n1/2)).
Пример реализации на языке Python:
pythonn1 = int(input())
n2 = int(input())
# Проверка на четность суммы количества гирек
if (n1 + n2) % 2 != 0:
print("No")
else:
print("Yes")
if n1 == n2:
print(n1 // 2, n2 // 2)
elif n1 > n2:
print((n1 - n2) // 2, n2 // 2)
else:
print(n1 // 2, (n2 - n1) // 2)
Примеры работы программы:
Ввод:
2 1
Вывод:
yamlYes
0 1
Ввод:
1 2
Вывод:
yamlYes
0 1
Ввод:
3 2
Вывод:
yamlYes
1 1
Ввод:
5 5
Вывод:
yamlYes
2 2
Ввод:
4 7
Вывод:
yamlNo
Надеюсь, это пом


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili