Подотрезок с суммой ровно S

Просмотр в формате PDF

Submit solution


Очки: 130
Ограничение по времени: 2.0s
Ограничение по памяти: 256M

Автор:
Problem type
Allowed languages
C++, Python

Шеф-повар составляет сет-меню из непрерывного блока блюд. Для каждого из n блюд известна его калорийность: a_1, a_2, ..., a_n, где все значения положительны.

Нужно выбрать такой непрерывный блок блюд с номерами от l до r, что суммарная калорийность этого блока была ровно равна S, то есть:

a_l + a_{l+1} + ... + a_r = S

Требуется найти любые подходящие границы l и r или определить, что такого блока не существует.

Входные данные

Первая строка содержит два целых числа n и S.

Вторая строка содержит n целых чисел a_i — калорийности блюд.

Выходные данные

Если существует непрерывный блок блюд с суммарной калорийностью ровно S, выведите в одной строке два целых числа l и r — границы такого блока.

Если подходящих блоков несколько, разрешается вывести любой.

Если такого блока нет, выведите -1.

Ограничения

  • 1 <= n <= 2 * 10^5
  • 1 <= S <= 10^14
  • 1 <= a_i <= 10^9
  • Ввод осуществляется через стандартный ввод.
  • Вывод осуществляется через стандартный вывод.

Примеры

Пример 1

Входные данные

1 5
5

Выходные данные

1 1
Пример 2

Входные данные

1 6
7

Выходные данные

-1

Комментарии

Еще нет ни одного комментария.