printРабочее место участника

printЗадачи

1860. Взаиморасчеты

Ограничения: время – 1s/2s, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0) idea

N паломников после совместного путешествия к пирамидам Джелибейби сидят за круглым столом. Во время поездки они делали какие-то платежи как за себя, так и за других членов группы. У каждого есть некоторая сумма денег, оставшаяся после поездки, и каждый подсчитал, какая сумма должна получиться, если бы он платил только за себя. Вместо того, чтобы прямо передать деньги друг другу, паломники рассчитали среднее арифметическое S для  сумм, оставшихся у них после поездки, и пытаются перераспределить деньги нужным образом, используя только следующую операцию по передаче денег. Пусть у i-го человека текущая сумма денег равна ai. Если ai > S, то i-й человек должен передать соседу слева сумму ai - S и такую же сумму соседу справа. Если ai < S, то i-й человек должен забрать у сосед слева сумму S - ai и такую же сумму у соседа справа.
Напишите программу, которая определит, смогут ли паломники получить нужные конечные суммы, используя указанную операцию, и каким образом. Допускается, что при выполнении плана передачи денег у человека может получаться на руках отрицательная или дробная сумма денег.
Формат ввода
В первой строке ввода содержится одно целое число N (3  N  1000) – количество паломников. Во второй строке содержится N целых чисел ai в диапазоне от 0 до 1000 – начальные суммы денег у паломников в порядке обхода стола по часовой стрелке. В третьей строке содержится N целых чисел bi в диапазоне от 0 до 1000 – конечные суммы денег у паломников в том же порядке. Гарантируется, что сумма ai равна сумме bi.
Формат вывода
Если перераспределение денег возможно, то в первой строке вывести сообщение YES, во второй строке вывести количество операций по передач денег, в третьей строке – номера паломников, которые должны выполнять передачу. Нумерация паломников начинается с 1. Можно вывести любой план выполнения операций, не обязательно самый кратчайший.
Если перераспределение денег невозможно, то в первой строке вывести сообщение NO.

Пример ввода

3
1 2 3
3 1 2

Пример вывода

YES
2
3 2
loading