решить задачу на питоне Харитон оказался перед непростым выбором: ему нужно решить, на какую из двух пересдач он пойдёт. К его огорчению, пойти на обе пересдачи он не может, так что ему приходится оценивать плюсы и минусы каждого решения.
Харитон уже придумал n доводов, склоняющих его к тому или иному решению. С его точки зрения, эти доводы имеют различный вес. Действительно, то, что Харитон практически не знаком с одной темой, конечно, более весомый факт, нежели то, что синоптики обещают дождь во время одной из пересдач.
Изначально Харитон собирался пойти на первую пересдачу. Но теперь он планирует последовательно рассмотреть все доводы и только после этого принять решение.
Чтобы не менять мнение слишком часто, Харитон выбрал некоторое число s. Если после рассмотрения очередного довода сумма доводов в пользу одной из пересдач будет превышать сумму доводов в пользу другой на величину, не меньшую s, Харитон сочтёт, что ему следует пойти на ту, сумма доводов которой больше. Конечно, возможно, что он и до этого считал именно так: в этом случае Харитон не меняет мнение.
Ваша задача — определить, на какую пересдачу пойдёт Харитон и сколько раз он поменяет свое мнение в процессе рассмотрения доводов.
Примечание. Чтобы отличать доводы в пользу первой и в пользу второй пересдачи, во входных данных доводы в пользу второй пересдачи будут записаны со знаком «–». Разумеется, сравнивать суммы доводов нужно по абсолютной величине.
Входные данные
В первой строке содержатся целые числа n и s (1 ≤ n ≤ 105, 1 ≤ s ≤ 109) — количество доводов и величина s, описанная в условии.
Во второй строке содержится n целых чисел d1, d2, ..., dn (1 ≤ |dj| ≤ 105) — веса доводов. Если довод имеет положительный вес, он в пользу первой пересдачи, если отрицательный — в пользу второй.
Выходные данные
В первой строке выведите число 1, если Харитон пойдёт на первую пересдачу, и число 2, если Харитон пойдёт на вторую пересдачу.
Во второй строке выведите целое число — сколько раз Харитон будет менять мнение в процессе рассмотрения доводов.
в простейшем случае, трассировка - вывод значений переменных на экран (например, в окно консоли) , либо расчёт их на бумажке для каждого шага.
в более продвинутом варианте используются точки останова, окно наблюдения, выполнение по шагам и, если есть, контекстный интерпретатор выражений.
есть также специальная "трассирующая консоль" - интерфейс вывода информации из программы в отладчик, если таковой присутствует.
почти любой современный отладчик показывает состояние програмm при её останове, что делает трассировку процессом легко доступным