QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 1024 MB Total points: 100 Difficulty: [show] Hackable ✓

#4658. Удаление камней

Statistics

Вы играете в небольшую игру под названием «Удаление камней».

В ряд расположены $n$ кучек камней. В кучке $i$ находится $a_i$ камней. Ваша задача — удалить все камни с помощью следующих операций:

  • Операция 1: выбрать одну кучку и удалить из неё не менее 2 камней.
  • Операция 2: выбрать непрерывный отрезок номеров $[l,r]$, где $1\le l\le r\le n$ и $r-l\ge 2$, и удалить ровно по 1 камню из каждой кучки на этом отрезке.

Вы можете выполнять эти две операции в любом порядке любое количество раз, пока ни одну операцию больше нельзя будет выполнить. Если в итоге удастся удалить все камни, вы победите.

Возможно, вы уже начали считать что-нибудь вроде «количества существенно различных способов выполнения операций», но на практике обнаружили, что всё время проигрываете. Поэтому вы решили немного схитрить: в начале игры у вас в руке тайно спрятано $k$ камней. До выполнения всех операций вы можете и обязаны добавить эти камни в одну или несколько кучек. Вы надеетесь, что это повысит шансы на победу, но понимаете, что из-за этого можно проиграть даже в игре, которую изначально можно было выиграть.

Теперь вы можете свободно выбрать начальную позицию: каждое $a_i$ может быть любым целым числом из диапазона $[l_i,r_i]$. Требуется найти количество начальных позиций, для которых существует хотя бы один способ победить. Поскольку ответ велик, выведите его по модулю $(10^9+7)$. Две начальные позиции различны тогда и только тогда, когда существует хотя бы один индекс $1\le i\le n$, для которого значения $a_i$ различаются. Обратите внимание: под «начальной позицией» понимается позиция до добавления $k$ камней.

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

Данные считываются из файла stone.in.

В этой задаче несколько наборов тестовых данных. Первая строка содержит положительное целое число $T$ — количество наборов. Затем последовательно следуют наборы данных.

Для каждого набора первая строка содержит два целых числа $n,k$ — количество кучек и количество добавляемых камней соответственно. Следующие $n$ строк содержат по два неотрицательных целых числа $l_i,r_i$, задающих диапазон начального количества камней в каждой кучке.

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

Результат выводится в файл stone.out.

Для каждого набора выведите в отдельной строке одно целое число — количество позиций, в которых можно победить, по модулю $(10^9+7)$.

Примеры

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

1
4 1
0 1
0 1
0 1
0 1

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

14

Примечание

Всего существует $2^4=16$ возможных начальных позиций. Можно доказать, что для всех позиций, кроме $(0,0,0,0)$ и $(1,0,0,1)$, существует способ победить. Например, для начальной позиции $(1,0,1,0)$ можно добавить находящийся в руке 1 камень во вторую кучку, получив позицию $(1,1,1,0)$, а затем один раз выполнить операцию 2 на отрезке $[1,3]$.

Пример 2

См. файлы stone/stone2.in и stone/stone2.ans в каталоге участника.

Пример 3

См. файлы stone/stone3.in и stone/stone3.ans в каталоге участника.

Пример 4

См. файлы stone/stone4.in и stone/stone4.ans в каталоге участника.

Ограничения

Для 100% данных гарантируется $T\le 10$, $3\le n\le 1000$, $0\le l_i\le r_i\le 10^9$, $0\le k\le 100$.

Номера тестов $n\le$ $k\le$ Особые условия
1–3 $5$ $2$ $r_i\le 5$
4–5 $1000$ $0$ $l_i=r_i$
6–8 $1000$ $100$ $l_i=r_i$
9–11 $1000$ $0$ Нет
12–13 $1000$ $2$ Нет
14–15 $1000$ $100$ $r_i\le 10$
16–20 $1000$ $100$ Нет

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#1306EditorialOpenkawaii rainstopqwqGotoHiotoriView

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.