Оптимальні підпослідовності#11020

Оптимальні підпослідовності

2 seconds
256 megabytes
Very hard

У заданій базовій числовій послідовності необхідно визначити підпослідовність або декілька підпослідовностей, можливо навіть різної довжини, сума елементів яких має найменшу абсолютну різницю із деяким цільовим значенням.

Input

У першому рядку містяться два числа, розділені пропуском: ціле число — кількість елементів базової послідовності (1 \leq N \leq 10\,000), та дійсне число — цільове значення суми елементів шуканих підпослідовностей. У наступному рядку записані дійсних чисел, відокремлених пропуском, — елементи базової послідовності.

Output

У першому рядку виводиться одне дійсне число — мінімальна абсолютна величина різниці між заданим цільовим значенням та сумою елементів шуканих підпослідовностей, обчислена з точністю . У другому рядку виводиться одне ціле число — кількість знайдених оптимальних підпослідовностей. У третьому рядку послідовно виводиться пар цілих чисел, відокремлених пропусками: перше з двох — позиція у базовій послідовності початку шуканої підпослідовності, друге — кількість елементів у такій підпослідовності. Вивід результатів здійснюється у порядку зростання стартових позицій. Якщо існує декілька підпослідовностей з однаковими позиціями початку, то вивід проводиться у порядку зростання довжин підпослідовностей.

Examples

Example 1

Loading
Loading

Example 2

Loading
Loading

Example 3

Loading
Loading

Example 4

Loading
Loading