У вас есть комната, полная весов и весов. Каждый вес весит десять фунтов и считается идеально сбалансированным, когда сумма весов на левой и правой сторонах точно такая же. Вы поместили несколько весов на некоторые из балансов, и вы поместили некоторые остатки на другие балансы. Учитывая описание того, как распределяются балансы и сколько дополнительного веса на каждом балансе, определите, как добавить вес к остаткам, чтобы они были полностью сбалансированы.
Может быть более одного способа сбалансировать все, но всегда выбирайте способ, который добавляет дополнительный вес на самые низкие балансы.
Входной файл начинается с одного целого числа, N, указывая, сколько остатков есть. Баланс 0 задается строками 1 и 2, баланс 1 задается строками 3 и 4 и т.д. Каждая пара строк форматируется следующим образом:
WL <balances>
WR <balances>
WL и WR указывают вес, добавленный к левой и правой сторонам, соответственно. представляет собой список других балансов, разделенных пробелами, которые находятся на этой стороне этого баланса. может содержать ноль или более элементов.
Рассмотрим следующий ввод:
4
0 1
0 2
0
0 3
3
0
0
0
Balance 0 has balance 1 on its left side and balance 2 on its right side
Balance 1 has balance 3 on its right side
Balance 2 has three pounds on its left side
Balance 3 has nothing on it
Так как баланс 3 ничего не имеет, он уже отлично сбалансирован и весит всего 10 фунтов. Баланс 2 не имеет другого баланса на нем, поэтому все, что нам нужно сделать, это сбалансировать его, положив три фунта на его правую сторону. Теперь он весит в общей сложности 16 фунтов. У баланса 1 есть баланс три на правой стороне, который весит 10 фунтов, поэтому мы просто положили 10 фунтов на его левую сторону. Баланс 1 весит 30 фунтов. Баланс 0 имеет баланс 1 на левой стороне (30 фунтов), а баланс 2 на правой стороне (16 фунтов), мы можем сбалансировать его, добавив 14 фунтов в правую сторону.
Выход должен быть N строк длинным, а n-я строка с указанием веса, добавленного к n-му балансу, отформатирована следующим образом:
<index>: <weight added to left side> <weight added to right side>
Таким образом, выход для этой проблемы будет:
0: 0 14
1: 10 0
2: 0 3
3: 0 0
Я пробовал, но я действительно плохо разбираюсь в программировании. С чего начать? пожалуйста, не отправляйте решение; Я хочу учиться.