Vadim loves traveling very much. This time he decided to take wonderful photographs of two cities from the airplane and publish them on social media. In order for the photographs to turn out well, the airplane must fly directly over the center of each city.
The center of the first city is located at point $$$(x_1, y_1)$$$, and the center of the second city is located at point $$$(x_2, y_2)$$$, with both cities located above the line $$$y = 0$$$ (that is, $$$y_1, y_2 \ge 1$$$).
The airplane that Vadim will fly on will take off from a runway located on the line $$$x = 0$$$. The airplane takes off from point $$$(0, 0)$$$ in the direction of the runway towards increasing $$$y$$$ coordinates, or towards decreasing $$$y$$$ coordinates, while keeping the $$$x$$$ coordinate unchanged.
The airplane can make a turn no more than once at any moment during its flight (including at the moment of takeoff) — flying in a straight line in any direction from its current point.
Vadim is interested in whether he will be able to take successful photographs of the two cities. Please note that he can fly over the cities in any order.
Each test contains multiple test cases. The first line contains the number of test cases $$$t$$$ ($$$1 \le t \le 10^4$$$). The description of the test cases follows.
The only line of each test case contains four integers $$$x_1$$$, $$$y_1$$$, $$$x_2$$$, and $$$y_2$$$ ($$$-10^9 \le x_1, x_2 \le 10^9$$$, $$$1 \le y_1, y_2 \le 10^9$$$) — the coordinates of the center of the first city and of the second city, respectively. It is guaranteed that $$$(x_1, y_1) \ne (x_2, y_2)$$$, that is, the centers of the cities do not coincide.
For each test case, output "Yes" (without quotes) if Vadim will be able to take successful photographs; otherwise, output "No" (without quotes).
You can output the answer in any case (upper or lower). For example, the strings "yEs", "yes", "Yes", and "YES" will be recognized as positive responses.
51 4 3 3-1 1 -4 42 1 3 28 10 8 1-10 5 16 1
Yes Yes Yes No No
In the first test case, the flight path of the airplane (highlighted in orange) can be as follows:
In the second test case, the airplane can turn at the moment of takeoff:
In the third test case, the flight path of the airplane can be as follows:
In the fourth test case, there is no route on which Vadim can take successful photographs.
As known from school physics, if a physical point is given a velocity vector, then in an environment with a constant acceleration due to gravity, this physical point will fly along a parabola.
Based on this phenomenon, mobile game developers came up with a simple arcade game. In the lower left corner of the screen, there is a basketball, which initially is at the point $$$(0,0)$$$. At any moment, the user can tap the screen of the phone, and if at that moment the ball is at the point $$$(x_0, y_0)$$$, then regardless of its speed or position, it will fly along a parabola defined by the equation $$$y = - a(x-x_0)^2 + b(x-x_0) + y_0$$$.
The phone screen has a width of $$$w$$$, so if the ball at any moment is at a point of the form $$$(w, y)$$$, it will instantly teleport to the point $$$(0, y)$$$, while preserving its velocity vector. That is, after the teleportation, the trajectory of the ball will not change, and it will continue to move along the same parabola, but shifted $$$w$$$ units to the left (see the figure).
Example trajectory of the ball The basketball in the game differs from a regular one in that it does not bounce off the ground and does not roll on it. Calculate the minimum number of taps on the screen that the player needs to make in order for the ball to reach the point $$$(x_b, y_b)$$$.
Note that the player can tap the screen at any moment in time, including at the moment when the ball is at non-integer points or when $$$x=0$$$.
The first line contains a single integer $$$t$$$ ($$$1 \le t \le 30\,000$$$) — the number of test cases. The following lines describe the test cases.
Each test case is described by a single line containing the integers $$$w$$$, $$$a$$$, $$$b$$$, $$$x_b$$$, $$$y_b$$$ ($$$2 \le w \le 100$$$, $$$1 \le a, b \le 100$$$, $$$1 \le x_b \le w-1$$$, $$$1 \le y_b \le 100$$$).
For each test case, output a single integer — the minimum number of taps on the screen that the player needs to make in order for the ball to reach the point $$$(x_b, y_b)$$$.
36 1 4 1 36 1 4 1 2100 100 1 80 100
1 2 40500
We define the bitwise characteristic of a positive integer $$$n$$$ as the number of pairs of integers $$$i$$$ and $$$j$$$ ($$$1 \le i \lt j$$$) such that $$$i \oplus j = n$$$ and $$$i \mid j = n$$$.
Calculate the value of the bitwise characteristic of the given integer $$$n$$$.
$$$\oplus$$$ denotes the bitwise XOR operation.
$$$\mid$$$ denotes the bitwise OR operation.
Each test contains multiple test cases. The first line contains the number of test cases $$$t$$$ ($$$1 \le t \le 10^4$$$). The description of the test cases follows.
The only line of each test case contains a single integer $$$n$$$ ($$$1 \le n \le 10^9$$$) — the integer for which the bitwise characteristic needs to be determined.
For each test case, output a single integer — the value of the bitwise characteristic of the integer $$$n$$$.
36842
1 0 3
In the first test case, there is only one suitable pair: $$$(2, 4)$$$.
In the second test case, there are no suitable pairs.
In the third test case, the following suitable pairs exist: $$$(2, 40)$$$, $$$(8, 34)$$$, and $$$(10, 32)$$$.
В стране $$$N$$$ вплотную занялись образованием граждан. Президент страны считает, что абсолютно все люди должны изучать что-то новое, даже студенты университета BOPEN SUIR.
Университет можно представить как таблицу из аудиторий на $$$n$$$ строк и $$$m$$$ столбцов, где в аудитории из $$$i$$$ строки и $$$j$$$ столбца проживает очередной студент. Было принято решение провести ровно $$$q$$$ лекций. На каждой лекции будет рассказываться уникальный материал, которого нет ни на какой другой лекции. $$$i$$$-я лекция задаётся четырьмя параметрами $$$lx_i, ly_i, rx_i, ry_i$$$ ($$$1\le lx_i \le rx_i \le n, 1\le ly_i \le ry_i \le m$$$). Такая лекция будет слышна только из аудиторий, находящихся в прямоугольнике, заданном этими четырьмя числами. Иными словами, студент из аудитории $$$(x, y)$$$ услышит лекцию $$$i$$$ тогда и только тогда, когда $$$lx_i \le x \le rx_i, ly_i \le y \le ry_i$$$.
После проведения всех $$$q$$$ лекций президент хочет понять уровень образованности в университете. Уровень образованности равен размеру максимального подмножества студентов, что ни у каких двух студентов из этого подмножества множества прослушанных лекций не совпадают полностью.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится единственное целое число $$$t$$$ ($$$1 \le t \le 10^5$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит три целых числа $$$n, m, q$$$ ($$$1 \le n, m, q \le 5 \cdot 10^5, 1\le n \cdot m \le 5 \cdot 10^5$$$) — размеры университета и количество прочитанных лекций.
Следующие $$$q$$$ строк содержат описание лекций в формате, указанном в условии. $$$i$$$-я из следующих строк содержит 4 целых числа $$$lx_i, ly_i, rx_i, ry_i$$$ ($$$1\le lx_i \le rx_i \le n, 1\le ly_i \le ry_i \le m$$$).
Гарантируется, что сумма $$$n \cdot m$$$ по всем наборам входных данных не превосходит $$$5 \cdot 10^5$$$.
Гарантируется, что сумма $$$q$$$ по всем наборам входных данных не превосходит $$$5 \cdot 10^5$$$.
Для каждого набора входных данных в отдельной строке выведите уровень образованности в университете.
13 3 21 1 1 13 3 3 3
3
11 1 21 1 1 11 1 1 1
1
Самолеты-самолеты-самолеты. Тут нет самолетов, но зато есть интересная задача, которую предлагаем вам решить.
Дан массив $$$a_1, a_2, \ldots, a_n$$$. Отрезок $$$l, r$$$ ($$$1 \leq l \leq r \leq n$$$) называется хорошим, если выполняется следующее условие:
Для каждого $$$i$$$ от $$$1$$$ до $$$r - l + 1$$$ найдется такое $$$j$$$ ($$$l \leq j \leq r$$$), что $$$a_j = x^i$$$ для какого-то целого числа $$$x$$$.
Требуется сказать, сколько существует хороших отрезков.
В первой строке записано единственное число $$$n$$$ ($$$1 \leq n \leq 10^5$$$) — длина массива.
Во второй строке записано $$$n$$$ чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \leq a_i \leq 10^9$$$) — сам массив.
Выведите единственное целое число — ответ на задачу.
41 2 3 4
8
52 3 4096 5 7
12
В первом тестовом примере подойдут пары $$$(l, r)$$$: $$$(1, 1)$$$, $$$(1, 2)$$$, $$$(1, 3)$$$, $$$(1, 4)$$$, $$$(2, 2)$$$, $$$(3, 3)$$$, $$$(3, 4)$$$, $$$(4, 4)$$$.
Как известно, «БГУИР» состоит из входа, а также $$$n - 1$$$ аудиторий, пронумерованных целыми числами от $$$2$$$ до $$$n$$$, а вход имеет номер $$$1$$$. Также в университете есть $$$m$$$ коридоров, соединяющие различные аудитории, либо же вход с аудиторией. При том логично, что из входа можно добраться до любой другой аудитории, перемещаясь по коридорам университета.
Саша впервые оказался в этом замечательном университете и хочет добраться до лекционных аудиторий, чтобы узнать много нового. Но «БГУИР» не маленький, поэтому за первый день он может пройти не более чем по $$$k$$$ коридорам. Но так как за день Саша узнает много нового, то после каждого дня он может пройти на один коридор больше. Таким образом, на второй день Саша может пройти не более $$$k + 1$$$ коридор, в третий $$$k + 2$$$ и так далее.
Но пока Саша слушает интересные лекции, «БГУИР» развивается семимильными шагами. А точнее, ночью каждого дня, посередине каждого коридора образуется еще одна аудитория $$$a$$$. Так, если коридор соединял аудитории ($$$v, u$$$), то на утро коридор между этими аудиториями ликвидируют, а на его место появляются два новых ($$$v, a$$$) и ($$$a, u$$$). При том для каждого коридора аудитория по середине является уникальной, а все коридоры ликвидируют одновременно.
Помогите Саше и скажите, до каких аудиторий, которые были в первый день его посещения университета, он сможет дойти за конечное количество дней, если он ночью спит в любой из аудиторий. При том для каждой аудитории решите независимо.
Первая строка каждого набора входных данных содержит три целых числа $$$n$$$, $$$m$$$ и $$$k$$$ ($$$2 \leq n \leq 2 \cdot 10^5$$$, $$$n - 1 \leq m \leq 2 \cdot 10^5$$$, $$$1 \leq k \leq n$$$) — количество объектов в университете с самого начала, количество коридоров и изначальное количество коридоров, которое Саша может проходить за один день. Где количество объектов — это количество аудиторий и вход.
Каждая из следующих $$$m$$$ строк содержит два целых числа $$$v$$$ и $$$u$$$ ($$$1 \leq v, u \leq n$$$, $$$v \neq u$$$) — номера объектов, которые соединяет очередной коридор.
Гарантируется, что нет двух коридоров, соединяющих одинаковую пару объектов.
Выведите в первой строке, до скольки изначальных объектов Саша сможет добраться. А во второй строке выведите их в порядке возрастания.
5 4 11 22 33 44 5
4 1 2 3 4
8 8 11 22 31 44 53 66 56 76 8
6 1 2 3 4 5 6
Как язык Rust гарантирует безопасную работу с памятью? Для этого вводятся такие концепции, как владение, заимствование и время жизни. Вадим, к сожалению, не смог разобраться, как установить компилятор Rust, поэтому решил потренироваться на упрощенной версии языка.
В языке, который использует Вадим, существует четыре операции:
Вадим предоставил вам последовательность операций, которая представляет некоторую программу, реализованную на этом языке. Вам нужно проверить, что программа безопасно работает с памятью; для этого после каждой операции в программе должны выполняться следующие правила:
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
В первой строке каждого набора входных данных содержится единственное целое число $$$n$$$ — количество операций в программе Вадима.
В следующих $$$n$$$ строках заданы операции в одном из следующих форматов:
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превышает $$$10^5$$$.
Также предоставляются следующие гарантии:
Для каждого набора входных данных выведите «Yes» (без кавычек), если программа Вадима безопасно работает с памятью, в противном случае выведите «No» (без кавычек).
631 a2 b a3 c a31 a2 b a2 c a31 a2 b a4 a41 a2 b a4 b4 a41 a2 b a4 b3 c a11 a
No Yes No Yes Yes Yes
В первом наборе входных данных после третьей команды нарушается правило №$$$1$$$.
Во втором наборе входных данных после каждой команды на переменной $$$a$$$ существуют только Read-only ссылки.
В третьем наборе входных данных после третьей команды нарушается правило №$$$2$$$.
В пятом наборе входных данных Writable ссылка создается после удаления Read-only ссылки, поэтому правило №$$$1$$$ не нарушается.
Есть $$$n$$$ аэропортов, пронумерованных целыми числами от $$$1$$$ до $$$n$$$. У каждого аэропорта есть свой класс обслуживания, для $$$i$$$-го аэропорта это некоторое целое число $$$a_i$$$.
Авиакомпания «Беда» осуществляет авиаперелёты с соблюдением особых условий, необходимых для поддержания высокого качества обслуживания. Так, из аэропорта $$$x$$$ существует перелёт только в следующие аэропорты:
Вас интересуют $$$q$$$ запросов $$$l_i, r_i$$$ таких, что $$$1 \le l_i \le r_i \le n$$$ на покупку абонемента, позволяющего не платить за перелёт, если номера обоих аэропортов находятся в промежутке от $$$l_i$$$ до $$$r_i$$$ включительно. Выгода такого абонемента определяется как количество различных групп аэропортов с номерами в промежутке от $$$l_i$$$ до $$$r_i$$$ включительно, внутри которых можно бесплатно перемещаться. Два аэропорта $$$x$$$ и $$$y$$$ находятся в одной группе, если существует бесплатный маршрут как из $$$x$$$ в $$$y$$$, так и из $$$y$$$ в $$$x$$$. Для каждого запроса требуется определить выгоду абонемента.
Каждый тест состоит из нескольких наборов входных данных. Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 1\,000$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
В первой строке задано два целых числа $$$n$$$ и $$$q$$$ ($$$1 \le n \le 5 \cdot 10^5$$$) — количество аэропортов и количество запросов соответственно.
Во второй строке задано $$$n$$$ целых чисел $$$a_i$$$ ($$$1 \le a_i \le 10^9$$$) — значения класса обслуживания соответствующих аэропортов.
В следующих $$$q$$$ строках задано по два целых числа $$$l_i$$$ и $$$r_i$$$ — для которых хочется определить выгоду абонемента.
Для каждого набора входных данных выведите единственное целое число — выгоду абонемента.
14 31 1 3 21 21 32 4
2 2 1
К Саше на день рождения пришло $$$5$$$ друзей и принесли с собой следующие подарки:
При этом друзья заранее договорились о подарках, а поэтому гарантируется, что $$$a + 2b + 3c + 4d = n \cdot m$$$. Саша до этого хвастался друзьям, что умеет вкладывать в любой прямоугольник максимальное количество уголков, а поэтому друзья решили проверить навыки Саши, но уже задав ему новую задачку:
Саше требуется полностью покрыть прямоугольник $$$n \times m$$$ фигурами, которые подарили друзья, при этом он должен использовать все $$$a$$$ фигурок Филиппа, все $$$b$$$ фигурок Ани, какие-то $$$c$$$ фигурок Юры и все фигурки большого горилла.
Помогите Саше и напишите программу, которая решает поставленную задачу или определяет, что решения не существует.
В первой строке указано число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.
Каждый набор данных описывается единственной строкой, в которой указаны неотрицательные целые числа $$$n$$$, $$$m$$$, $$$a$$$, $$$b$$$, $$$c$$$ и $$$d$$$ ($$$1 \le n \le 1000$$$, $$$1 \le m \le 1000$$$, $$$a+2b+3c+4d=n m$$$).
Гарантируется, что сумма $$$n m$$$ по всем наборам входных данных не превосходит $$$10^6$$$.
Для каждого набора входных данных выведите «No», если решить задачу невозможно.
В ином случае выведите «Yes» в своей строке, а в следующих $$$n$$$ строках выведите по $$$m$$$ чисел $$$z_{i j}$$$. Одну использованную фигуру следует обозначать одним и тем же номером, а разные фигуры — разными. Номера фигур могут быть любыми числами от $$$1$$$ до $$$n \cdot m$$$.
45 5 0 2 3 31 4 0 0 0 13 3 1 0 0 22 2 2 1 0 0
Yes 1 1 4 2 2 1 1 4 2 2 6 6 3 3 5 7 6 3 3 5 7 7 8 8 5 No No Yes 1 2 3 3
На собеседовании в одну крупную авиакомпанию в качестве испытания кандидату предлагают сыграть в особые шахматы. Здесь шахматное поле представлено в виде неориентированного графа, состоящего из $$$n$$$ вершин, соединенных $$$m$$$ ребрами двух цветов — белого и черного. В вершинах с номерами $$$k$$$ и $$$q$$$ расположены фигуры короля и ферзя соответственно. Кандидат может выбрать, за какую фигуру он будет играть, а собеседующий выберет оставшуюся. Игроки выполняют ходы поочередно, первым ходит игрок, играющий за фигуру $$$X$$$. За один ход король может перемещаться в любую вершину, соединенную ребром с текущей, а ферзь может перемещаться в любую вершину, до которой существует путь из текущей вершины, состоящий из ребер одного цвета. Побеждает игрок, после хода которого фигуры оказались в одной вершине. Если побеждает кандидат, то собеседование считается пройденным.
Теперь вы интересуетесь для некоторых конфигураций игры $$$k$$$, $$$q$$$ и $$$X$$$, за какую фигуру нужно играть, чтобы гарантировать победу и, естественно, успешное прохождение собеседования.
Каждый тест состоит из нескольких наборов входных данных. Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 50$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
В первой строке набора входных данных задано три целых числа $$$n$$$, $$$m$$$ и $$$l$$$ ($$$2 \le n \le 100$$$, $$$1 \le m \le 100$$$, $$$1 \le l \le 5 \cdot 10^5$$$) — количество вершин в графе, ребер и количество конфигураций игры соответственно.
В следующих $$$m$$$ строках задано по 3 целых числа $$$u$$$, $$$v$$$ и $$$c$$$ ($$$1 \le u, v \le n$$$, $$$u \ne v$$$, $$$c \in \{1, 2\}$$$) — номера вершин, соединенных ребром, и цвет ребра. Гарантируется, что граф состоит из одной компоненты связности и не содержит кратных ребер.
В следующих $$$l$$$ строках задано два целых числа $$$k$$$ и $$$q$$$ ($$$1 \le k, q \le n$$$, $$$k \ne q$$$) и строка $$$X$$$ — номера вершин, где расположены король и ферзь, и название фигуры, которая должна выполнить первый ход. Если задано «queen» (без кавычек), то первым ходит игрок, играющий за ферзя, если «king» (без кавычек) — игрок, играющий за короля.
Гарантируется, что сумма $$$n$$$ и сумма $$$m$$$ по всем наборам входных данных не превышают $$$100$$$, а сумма $$$l$$$ не превышает $$$5 \cdot 10^5$$$.
Для каждого набора входных данных для каждой конфигурации игры выведите «king» (без кавычек), если кандидат должен выбрать короля, чтобы гарантировать победу, «queen» (без кавычек), если кандидат должен выбрать ферзя, и «draw» (без кавычек), если кандидат не сможет гарантировать победу, играя за одну из фигур.
24 4 21 2 12 3 23 4 14 1 21 3 king1 3 queen6 6 11 2 12 3 23 4 14 5 25 6 16 1 21 3 queen
queen king draw
Given an array of integers $$$a_1, a_2, \ldots, a_n$$$ and an integer $$$k$$$. There are also $$$q$$$ queries to modify the array: replace the $$$i$$$-th element of the array $$$a$$$ with $$$x$$$.
After each query, as well as for the initial array, you need to determine the maximum value of $$$a_i + a_j$$$, where $$$1 \leq i \lt j \leq n$$$, $$$j - i \lt k$$$, and how many such pairs $$$(i, j)$$$ exist that yield the maximum value.
Note that in this problem, you need to respond to queries in "online" mode.
The first line contains two numbers $$$n$$$ and $$$k$$$ ($$$2 \leq n \leq 10^5$$$, $$$2 \leq k \leq n$$$).
The second line contains $$$n$$$ numbers $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \leq a_i \leq 10^9$$$).
The third line contains a single number $$$q$$$ ($$$1 \leq q \leq 10^5$$$). Then, the following $$$q$$$ lines describe the modification queries.
For each query, two numbers $$$i$$$ and $$$x$$$ are given ($$$1 \leq i \leq n$$$, $$$1 \leq x \leq 10^9$$$), and let the answer for the previous query be $$$(mx, cnt)$$$, where $$$mx$$$ is the maximum sum and $$$cnt$$$ is how many such pairs there were. Then, you need to change the value of the element $$$((i + mx + cnt) \bmod n) + 1$$$ to the value $$$x$$$.
Before all modifications and after each query, output two numbers on one line — what the maximum sum can be and how many such pairs exist.
5 35 1 1 1 541 54 21 63 2
6 4 10 1 7 1 7 3 8 1
Having lost all the money for a gift, Sasha decided to give a different gift, specifically — to help his girlfriend with her homework:
Let's define the function $$$f(x) = (x \wedge (x + 1)) \oplus (x \wedge (x - 1))$$$.
Where $$$\wedge$$$ denotes the bitwise AND operation and $$$\oplus$$$ denotes the bitwise XOR opearation.
Let's define the function $$$g(x)$$$ as the number of $$$y$$$ ($$$1 \leq y \leq 2^n - 1$$$) for which $$$f(y) = x$$$ holds true.
Also given is the number $$$a$$$ ($$$0 \leq a \leq 2^n - 1$$$). It is required to find the maximum value of $$$a \oplus g(x)$$$.
Help Sasha please his girlfriend and solve her homework for her.
This problem consists of several test cases.
The first line contains a single number $$$T$$$ ($$$1 \leq T \leq 5000$$$) — the number of test cases.
Then follows their description.
The first line contains a single number $$$n$$$ ($$$3 \leq n \leq 10^5$$$).
The second line contains a string $$$a$$$ consisting only of characters "0" or "1" of length $$$n$$$ defining the number $$$a$$$ in binary notation.
It is guaranteed that the sum of $$$n$$$ over all test cases does not exceed $$$10^5$$$
In other words, the number defined by the string will be equal to $$$2^{n - 1} \cdot a_1 + 2^{n - 2} \cdot a_2 + \ldots + 2^{0} \cdot a_n$$$
For each test case, output the answer to the problem as a binary string of "0" and "1"
5301041000400104110141111
011 1110 0110 1111 1111
Consider the first test case:
$$$ f(1) = 0, f(2) = 2, f(3) = 2, f(4) = 4, f(5) = 0, f(6) = 2, f(7) = 6 $$$
Therefore:
$$$ g(0) = 2, g(2) = 3, g(6) = 1, g(4) = 1 $$$
Hence, the maximum value is achieved at $$$x = 2$$$ or $$$x = 6$$$. ($$$2 \oplus 1 = 3$$$)
Madoka has already finished writing the municipal stage in Novosibirsk and went home to wait for the results of the closed testing.
At the olympiad, there was exactly one problem — given a permutation of numbers from $$$1$$$ to $$$n$$$: $$$p_1, p_2, \ldots, p_n$$$. It is necessary to find out the minimum number of times one can swap adjacent elements to sort the permutation in ascending order. However, Madoka solved it as follows: $$$k + \frac{|1 - p_1| + |2 - p_2| + \ldots + |n - p_n|}{2}$$$.
But since the jury knows who Madoka's father is, in order not to lose their job, they must create tests such that Madoka's solution is correct. Therefore, they became interested in how many permutations of length $$$n$$$ exist for which Madoka's solution will yield the correct answer to the problem, but since the answer may be too large, output it modulo $$$10^9 + 7$$$.
Two numbers $$$n, k$$$ are given in a single line separated by a space ($$$2 \leq n \leq 17$$$, $$$0 \leq k \leq 50$$$).
In a single line, print exactly the number — the number of permutations of length $$$n$$$ modulo $$$10^9 + 7$$$ for which the minimum number of swaps of neighboring elements for sorting is $$$k + \frac{|1 - p_1| + |2 - p_2| + \ldots + |n - p_n|}{2}$$$.
3 1
1
3 0
5
4 0
14
In the first example, only the permutation $$$3, 2, 1$$$ is suitable, for it the minimum number of swaps is — $$$3$$$, and Madoka's answer is — $$$\frac{|1 - 3| + |2 - 2| + |3 - 1|}{2} + 1=2 + 1 = 3$$$.