На выборах участвуют N кандидатов, пронумерованных 1, 2, \ldots, N. Всего есть K голосов, некоторые из которых уже подсчитаны. До настоящего времени кандидат i получил A_i голосов. После подсчета всех бюллетеней кандидат i (1 \leq i \leq N) будет избран, если и только если количество кандидатов, получивших больше голосов, чем он, меньше M. Может быть избрано несколько кандидатов. Для каждого кандидата найдите минимальное количество дополнительных голосов, которые они должны получить из оставшихся бюллетеней, чтобы гарантировать свою победу, независимо от того, как другие кандидаты получают голоса. Формально, решите следующую задачу для каждого i = 1,2,\ldots,N. Определите, существует ли неотрицательное целое число X, не превышающее K - \displaystyle{\sum_{i=1}^{N}} A_i, удовлетворяющее следующему условию. Если оно существует, найдите минимальное возможное такое число.

- Если кандидат i получает X дополнительных голосов, то кандидат i всегда будет избран.

Вход

Входные данные даются из стандартного ввода в следующем формате:
N M K
A_1 A_2 \ldots A_N

Выход

Пусть C_i — минимальное количество дополнительных голосов, которые кандидат i должен получить из оставшихся бюллетеней, чтобы гарантировать свою победу, независимо от того, как другие кандидаты получают голоса. Выведите C_1, C_2, \ldots, C_N через пробелы. Если кандидат i уже обеспечил свою победу, то пусть C_i = 0. Если кандидат i не может обеспечить свою победу ни при каких обстоятельствах, то пусть C_i = -1.

Ограничения

- 1 \leq M \leq N \leq 2 \times 10^5
- 1 \leq K \leq 10^{12}
- 0 \leq A_i \leq 10^{12}
- \displaystyle{\sum_{i=1}^{N} A_i} \leq K
- Все входные значения — целые числа.

Пример входных данных 1

5 2 16
3 1 4 1 5

Пример выходных данных 1

2 -1 1 -1 0

14 голосов уже подсчитаны, и осталось 2 голоса.
C для вывода: (2, -1, 1, -1, 0). Например:

- Кандидат 1 может обеспечить свою победу, получив еще 2 голоса, но не получив всего 1 голос. Таким образом, C_1 = 2.
- Кандидат 2 никогда не может (даже если он получит еще 2 голоса) обеспечить свою победу, поэтому C_2 = -1.

Пример входных данных 2

12 1 570
81 62 17 5 5 86 15 7 79 26 6 28

Пример выходных данных 2

79 89 111 117 117 74 112 116 80 107 117 106

На выборах участвуют N кандидатов, пронумерованных 1, 2, \ldots, N. Всего есть K голосов, некоторые из которых уже подсчитаны.
До настоящего времени кандидат i получил A_i голосов.
После подсчета всех бюллетеней кандидат i (1 \leq i \leq N) будет избран, если и только если количество кандидатов, получивших больше голосов, чем он, меньше M. Может быть избрано несколько кандидатов.
Для каждого кандидата найдите минимальное количество дополнительных голосов, которые они должны получить из оставшихся бюллетеней, чтобы гарантировать свою победу, независимо от того, как другие кандидаты получают голоса.
Формально, решите следующую задачу для каждого i = 1,2,\ldots,N.
Определите, существует ли неотрицательное целое число X, не превышающее K - \displaystyle{\sum_{i=1}^{N}} A_i удовлетворяющее следующему условию. Если оно существует, найдите минимальное возможное такое число.

- Если кандидат i получает X дополнительных голосов, то кандидат i всегда будет избран.

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

Входные данные даются из стандартного ввода в следующем формате:
N M K
A_1 A_2 \ldots A_N

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

Пусть C_i — минимальное количество дополнительных голосов, которые кандидат i должен получить из оставшихся бюллетеней, чтобы гарантировать свою победу, независимо от того, как другие кандидаты получают голоса. Выведите C_1, C_2, \ldots, C_N через пробелы.
Выведите C_1, C_2, \ldots, C_N через пробелы. Если кандидат i уже обеспечил свою победу, то пусть C_i = 0. Если кандидат i не может обеспечить свою победу ни при каких обстоятельствах, то пусть C_i = -1.

Ограничения

- 1 \leq M \leq N \leq 2 \times 10^5
- 1 \leq K \leq 10^{12}
- 0 \leq A_i \leq 10^{12}
- \displaystyle{\sum_{i=1}^{N} A_i} \leq K
- Все входные значения — целые числа.

Пример входных данных 1

5 2 16
3 1 4 1 5

Пример выходных данных 1

2 -1 1 -1 0

14 голосов уже подсчитаны, и осталось 2 голоса.
C для вывода: (2, -1, 1, -1, 0). Например:

- Кандидат 1 может обеспечить свою победу, получив еще 2 голоса, но не получив всего 1 голос. Таким образом, C_1 = 2.
- Кандидат 2 никогда не может (даже если он получит еще 2 голоса) обеспечить свою победу, поэтому C_2 = -1.

Пример входных данных 2

12 1 570
81 62 17 5 5 86 15 7 79 26 6 28

Пример выходных данных 2

79 89 111 117 117 74 112 116 80 107 117 106

Проводятся выборы с участием N кандидатов с номерами 1, 2, \ldots, N. Есть K голосов, некоторые из которых уже подсчитаны.
До сих пор кандидат i получил A_i голосов.
После подсчета всех бюллетеней кандидат i (1 \leq i \leq N) будет избран тогда и только тогда, когда количество кандидатов, получивших больше голосов, чем он, будет меньше M. Может быть избрано несколько кандидатов.
Для каждого кандидата найдите минимальное количество дополнительных голосов, которое ему необходимо из оставшихся бюллетеней, чтобы гарантировать победу, независимо от того, как другие кандидаты получат голоса.
Формально решите следующую задачу для каждого i = 1,2,\ldots,N.
Определите, существует ли неотрицательное целое число X, не превышающее K - \displaystyle{\sum_{i=1}^{N}} A_i, удовлетворяющее следующему условию. Если оно существует, найдите минимально возможное такое целое число.

- Если кандидат i получает X дополнительных голосов, то кандидат i всегда будет избран.

Ввод

Ввод дается из стандартного ввода в следующем формате:
N M K
A_1 A_2 \ldots A_N

Вывод

Пусть C_i будет минимальным количеством дополнительных голосов, которые нужны кандидату i из оставшихся бюллетеней, чтобы гарантировать свою победу независимо от того, как другие кандидаты получат голоса. Выведите C_1, C_2, \ldots, C_N, разделенные пробелами.
Если кандидат i уже обеспечил свою победу, то пусть C_i = 0. Если кандидат i не может обеспечить свою победу ни при каких обстоятельствах, то пусть C_i = -1.

Ограничения

- 1 \leq M \leq N \leq 2 \times 10^5
- 1 \leq K \leq 10^{12}
- 0 \leq A_i \leq 10^{12}
- \displaystyle{\sum_{i=1}^{N} A_i} \leq K
- Все входные значения являются целыми числами.

Пример ввода 1

5 2 16
3 1 4 1 5

Пример вывода 1

2 -1 1 -1 0

14 голосов подсчитано до сих пор, и осталось 2 голоса.
C для вывода — (2, -1, 1, -1, 0). Например:

- Кандидат 1 может обеспечить свою победу, получив еще 2 голоса, но не получив еще 1 голос. Таким образом, C_1 = 2.
- Кандидат 2 никогда не сможет (даже если он получит на 2 голоса больше) обеспечить себе победу, поэтому C_2 = -1.

Пример ввода 2

12 1 570
81 62 17 5 5 86 15 7 79 26 6 28

Пример вывода 2

79 89 111 117 117 74 112 116 80 107 117 106


Вам дана перестановка P=(P_1,P_2,\dots,P_N) из (1,2,\dots,N).
Рассмотрите следующие операции k\ (k=2,3,\dots,N) над этой перестановкой.

- Операция k: Для i=1,2,\dots,k-1 в этом порядке, если P_i > P_{i+1}, поменять местами значения i-го и (i+1)-го элементов P.

Вам также дана неубывающая последовательность A=(A_1,A_2,\dots,A_M)\ (2 \leq A_i \leq N) длины M.
Для каждого i=1,2,\dots,M найдите число инверсий P после применения операций A_1, A_2, \dots, A_i в этом порядке.

Каково число инверсий последовательности?

Число инверсии последовательности x=(x_1,x_2,\dots,x_n) длины n — это количество пар целых чисел (i,j)\ (1\leq i < j \leq n) таких, что x_i > x_j.

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

Входные данные задаются из стандартного ввода в следующем формате:
N
P_1 P_2 \dots P_N
M
A_1 A_2 \dots A_M

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

Выведите M строк. k-я строка должна содержать ответ на задачу для i=k.

Ограничения

- 2 \leq N \leq 2 \times 10^5
- 1 \leq M \leq 2 \times 10^5
- 2 \leq A_i \leq N
- P — это перестановка (1,2,\dots,N).
- A_i \leq A_{i+1} для i=1,2,\dots,M-1.
- Все входные значения являются целыми числами.

Пример ввода 1

6
3 2 4 1 6 5
2
4 6

Пример вывода 1

3
1

Сначала выполняется операция 4. Во время нее P изменяется следующим образом: (3,2,4,1,6,5) \rightarrow (2,3,4,1,6,5) \rightarrow (2,3,4,1,6,5) \rightarrow (2,3,1,4,6,5). Номер инверсии P после этого равен 3.
Далее выполняется операция 6, где P в конечном итоге становится (2,1,3,4,5,6), номер инверсии которого равен 1.

Пример ввода 2

20
12 14 16 8 7 15 19 6 18 5 13 9 10 17 4 1 11 20 2 3
15
3 4 6 8 8 9 10 12 13 15 18 18 19 19 20

Пример вывода 2

117
116
113
110
108
105
103
99
94
87
79
72
65
58
51

Вам дана перестановка P=(P_1,P_2,\dots,P_N) из (1,2,\dots,N).
Рассмотрим следующие операции k\ (k=2,3,\dots,N) над этой перестановкой.

- Операция k: i=1,2,\dots,k-1 в этом порядке, если P_i > P_{i+1}, поменяйте местами значения i-го и (i+1)-го элементов P.

Вам также дана неубывающая последовательность  A=(A_1,A_2,\dots,A_M)\ (2 \leq A_i \leq N) длины M.
Для каждого i=1,2,\dots,M, найдите количество инверсий P после применения операций A_1, A_2, \dots, A_i в этом порядке.

 Что такое количество инверсий последовательности?

Количество инверсий последовательности x=(x_1,x_2,\dots,x_n) длины n — это количество пар целых чисел (i,j)\ (1\leq i < j \leq n) таких, что x_i > x_j.

Ввод

Вводные данные передаются из стандартного ввода в следующем формате:
N
P_1 P_2 \dots P_N
M
A_1 A_2 \dots A_M

Вывод

Выведите M строк. В k-й строке должен быть указан ответ на задачу для i=k.

Ограничения

- - 2 \leq N \leq 2 \times 10^5
- 1 \leq M \leq 2 \times 10^5
- 2 \leq A_i \leq N
- P это перестановка (1,2,\dots,N).
- A_i \leq A_{i+1} для i=1,2,\dots,M-1.
- Все вводные значения являются целыми числами.

Пример ввода 1

6
3 2 4 1 6 5
2
4 6

Пример вывода 1

3
1

Сначала выполняется операция 4. При этом P изменяется следующим образом: (3,2,4,1,6,5) \rightarrow (2,3,4,1,6,5) \rightarrow (2,3,4,1,6,5) \rightarrow (2,3,1,4,6,5). Количество инверсий P после этого равно 3.
Далее выполняется операция 6, где P в итоге становится (2,1,3,4,5,6), количество инверсий которого равно 1.

Пример ввода 2

20
12 14 16 8 7 15 19 6 18 5 13 9 10 17 4 1 11 20 2 3
15
3 4 6 8 8 9 10 12 13 15 18 18 19 19 20

Пример вывода 2

117
116
113
110
108
105
103
99
94
87
79
72
65
58
51

Вам дана перестановка P=(P_1,P_2,\dots,P_N) из (1,2,\dots,N).
Рассмотрите следующие операции k\ (k=2,3,\dots,N) над этой перестановкой.

- Операция k: Для i=1,2,\dots,k-1 в этом порядке, если P_i > P_{i+1}, поменяйте значения i-го и (i+1)-го элементов P.

Вам также дана невозрастающая последовательность A=(A_1,A_2,\dots,A_M)\ (2 \leq A_i \leq N) длины M.
Для каждого i=1,2,\dots,M, найдите число инверсий P после применения операций A_1, A_2, \dots, A_i в этом порядке.

Что такое число инверсий последовательности?

Число инверсий последовательности x=(x_1,x_2,\dots,x_n) длины n — это количество пар целых чисел (i,j)\ (1\leq i < j \leq n), таких что x_i > x_j.

Input

The input is given from Standard Input in the following format:
N
P_1 P_2 \dots P_N
M
A_1 A_2 \dots A_M

Output

Print M lines. The k-th line should contain the answer to the problem for i=k.

Constraints

- 2 \leq N \leq 2 \times 10^5
- 1 \leq M \leq 2 \times 10^5
- 2 \leq A_i \leq N
- P is a permutation of (1,2,\dots,N).
- A_i \leq A_{i+1} for i=1,2,\dots,M-1.
- All input values are integers.

Sample Input 1

6
3 2 4 1 6 5
2
4 6

Sample Output 1

3
1

First, operation 4 is performed. During this, P changes as follows: (3,2,4,1,6,5) \rightarrow (2,3,4,1,6,5) \rightarrow (2,3,4,1,6,5) \rightarrow (2,3,1,4,6,5). The inversion number of P afterward is 3.
Next, operation 6 is performed, where P eventually becomes (2,1,3,4,5,6), whose inversion number is 1.

Sample Input 2

20
12 14 16 8 7 15 19 6 18 5 13 9 10 17 4 1 11 20 2 3
15
3 4 6 8 8 9 10 12 13 15 18 18 19 19 20

Sample Output 2

117
116
113
110
108
105
103
99
94
87
79
72
65
58
51


Вам даны две перестановки P=(P_1,P_2,\dots,P_N) и Q=(Q_1,Q_2,\dots,Q_N) из (1,2,\dots,N).
Запишите один из символов 0 и 1 в каждой ячейке сетки размером N на N, чтобы были выполнены все следующие условия:

- Пусть S_i это строка, полученная путём объединения символов i-й строки с 1-го по N-й столбец. Тогда SS_{P_1} < S_{P_2} < \dots < S_{P_N} в лексикографическом порядке.
- Пусть T_i это строка, полученная объединением символов i-го столбца с 1-й по N-ю строку. Тогда T_{Q_1} < T_{Q_2} < \dots < T_{Q_N} в лексикографическом порядке.

Можно доказать, что для любых P и Q существует хотя бы один способ записи символов, удовлетворяющий всем условиям.
 Что означает "X < Y в лексикографическом порядке"?
Для строк X=X_1X_2\dots X_{|X|} и Y = Y_1Y_2\dots Y_{|Y|}, "X < Y в лексикографическом порядке" означает, что выполняются 1. или 2. ниже.
Здесь |X| и |Y| обозначают длины X и Y соответственно.

-  |X| \lt |Y| and X_1X_2\ldots X_{|X|} = Y_1Y_2\ldots Y_{|X|}.
- Существует целое число 1 \leq i \leq \min\lbrace |X|, |Y| \rbrace так, что выполняются оба следующих условия:

-  X_1X_2\ldots X_{i-1} = Y_1Y_2\ldots Y_{i-1}
- X_i меньше Y_i.

Ввод

Входные данные передаются из стандартного ввода в следующем формате:
N
P_1 P_2 \dots P_N
Q_1 Q_2 \dots Q_N

Вывод

Выведите способ заполнения сетки, удовлетворяющий условиям, в следующем формате, где A_{ij} это символ, записанный в i-й строке и j-м столбце:
A_{11}A_{12}\dots A_{1N}
\vdots
A_{N1}A_{N2}\dots A_{NN}

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

Ограничения

- 2 \leq N \leq 500
- P и Q являются перестановками (1,2,\dots,N).
- Все входные значения являются целыми числами.

Пример ввода 1

3
1 2 3
2 1 3

Пример вывода 1

001
101
110

В этом примере, S_1=001, S_2=101, S_3=110, и T_1=011, T_2=001, T_3=110. Следовательно, S_1 < S_2 < S_3 и T_2 < T_1 < T_3 выполняются, удовлетворяя условиям.

Пример ввода 2

15
8 15 10 2 4 3 1 13 5 12 9 6 14 11 7
4 1 5 14 3 12 13 7 11 8 6 2 9 15 10

Пример вывода 2

010001111110101
001000000101001
010001001100010
010000011110010
010011101101101
100101110100000
111100011001000
000001001100000
100011011000101
000111101011110
101010101010101
011010101011110
010011000010011
100110010110101
000101101100100

Вам даны две перестановки P=(P_1,P_2,\dots,P_N) и Q=(Q_1,Q_2,\dots,Q_N) из (1,2,\dots,N).
Запишите один из символов 0 и 1 в каждую ячейку сетки N-на-N так, чтобы были выполнены все следующие условия:

- Пусть S_i будет строкой, полученной путем конкатенации символов в i-й строке с 1-го по N-й столбец. Затем S_{P_1} < S_{P_2} < \dots < S_{P_N} в лексикографическом порядке.
- Пусть T_i будет строкой, полученной путем конкатенации символов в i-й строке с 1-й по N-й столбец. Затем T_{Q_1} < T_{Q_2} < \dots < T_{Q_N} в лексикографическом порядке.

Можно доказать, что для любых P и Q существует по крайней мере один способ записи символов, который удовлетворяет всем условиям.
Что означает "X < Y в лексикографическом порядке"?
Для строк X=X_1X_2\dots X_{|X|} и Y = Y_1Y_2\dots Y_{|Y|}, "X < Y в лексикографическом порядке" означает, что выполняется 1. или 2. ниже.
Здесь |X| и |Y| обозначают длины X и Y соответственно.

- |X| \lt |Y| и X_1X_2\ldots X_{|X|} = Y_1Y_2\ldots Y_{|X|}.
- Существует целое число 1 \leq i \leq \min\lbrace |X|, |Y| \rbrace так, чтобы оба из следующих были верны:

- X_1X_2\ldots X_{i-1} = Y_1Y_2\ldots Y_{i-1}
- X_i меньше Y_i.

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

Входные данные даются из стандартного ввода в следующем формате:
N
P_1 P_2 \dots P_N
Q_1 Q_2 \dots Q_N

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

Выведите способ заполнения сетки, который удовлетворяет условиям в следующем формате, где A_{ij} — символ, записанный в i-й строке и j-м столбце:
A_{11}A_{12}\dots A_{1N}
\vdots
A_{N1}A_{N2}\dots A_{NN}

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

Ограничения

- 2 \leq N \leq 500
- P and Q are permutations of (1,2,\dots,N).
- Все входные значения являются целыми числами.

Пример ввода 1

3
1 2 3
2 1 3

Пример вывода 1

001
101
110

В этом примере S_1=001, S_2=101, S_3=110 и T_1=011, T_2=001, T_3=110. Следовательно, S_1 < S_2 < S_3 и T_2 < T_1 < T_3 выполняются, удовлетворяя условиям.

Пример ввода 2

15
8 15 10 2 4 3 1 13 5 12 9 6 14 11 7
4 1 5 14 3 12 13 7 11 8 6 2 9 15 10

Пример вывода 2

010001111110101
001000000101001
010001001100010
010000011110010
010011101101101
100101110100000
111100011001000
000001001100000
100011011000101
000111101011110
101010101010101
011010101011110
010011000010011
100110010110101
000101101100100

Вам даны две перестановкиP=(P_1, P_2, \dots, P_N) и Q=(Q_1, Q_2, \dots, Q_N) из (1, 2, \dots, N).
Напишите один из символов 0 и 1 в каждой ячейке сетки N-by-N. чтобы все следующие условия были удовлетворены:

-Пусть S_i будет строкой, полученной путем объединения символов в ряд i-й от 1-й в столбец N-TH. Затем,  S_{P_1} < S_{P_2} < \dots < S_{P_N} в лексикографическом порядке.
-Пусть T_i будет строкой полученной путем объединения символов в столбце i-й от 1-й в n-й строке. Затем, T_ {Q_1} <T_ {Q_2} <\ dots <T_ {Q_N} в лексикографическом порядке.

Можно доказать, что для любого P и Q есть, по крайней мере, один из способов написать персонажи, которые удовлетворяют всем условиям.
 Что означает "X < Y в лексикографическом порядке"?
Для строк X=X_1X_2\dots X_{|X|} и Y = Y_1Y_2\dots Y_{|Y|}, "X < Y в лексикографическом порядке" означает, что 1. или 2. Ниже удерживается.
Здесь |X| и |Y| — длины X и Y соответственно.

-|X| \lt |Y| и X_1X_2\ldots X_{|X|} = Y_1Y_2\ldots Y_{|X|}.
- Существует целое число 1 \leq i \leq \min{|X|, |Y|} так, чтобы оба из следующих были правдой:

-X_1X_2\ldots X_{i-1} = Y_1Y_2\ldots Y_{i-1}
-X_i меньше, чем Y_i.

Вход

Ввод приведен из стандартного ввода в следующем формате:
N
P_1 P_2 \dots P_N
Q_1 Q_2 \dots Q_N

Выход

Распечатайте способ заполнить сетку, который удовлетворяет условиям в следующем формате, гдеA_ {ij}-это символ, написанный в столбце i-й и J-Th:
A_{11}A_{12}\dots A_{1N}
\vdots
A_{N1}A_{N2}\dots A_{NN}

Если есть несколько способов удовлетворить условиям, любой из них будет принят.

Ограничения

- 2 \ leqN \ leq 500
- P и Q являются перестановкой (1,2, \dots, N).
- Все входные значения являются целыми числами.

Пример входа 1

3
1 2 3
2 1 3

Выбор вывода 1

001
101
110

В этом примере S_1 = 001, S_2 = 101, S_3 = 110 и T_1 = 011, T_2 = 001, T_3 = 110. Следовательно, S_1 <S_2 <S_3 и T_2 <T_1 <T_3 удерживает, удовлетворяя условиям.

Пример входа 2

15
8 15 10 2 4 3 1 13 5 12 9 6 14 11 7
4 1 5 14 3 12 13 7 11 8 6 2 9 15 10

Образец вывода 2

010001111110101
001000000101001
010001001100010
010000011110010
010011101101101
100101110100000
111100011001000
000001001100000
100011011000101
000111101011110
101010101010101
011010101011110
010011000010011
100110010110101
000101101100100


Для строк S и T, состоящих из строчных английских букв, и строки X, состоящей из 0 и 1, определите строку f(S,T,X) следующим образом:

- Начинаем с пустой строки, для каждого i=1,2,\dots,|X|, добавляем в конец S, если i-й символ X равен 0, и добавляем T в конец, если он равен 1.

Вам дана строка S, состоящая из строчных английских букв, и строки X и Y, состоящие из 0 и 1.
Определите, существует ли строка T (которая может быть пустой), такая что f(S,T,X)=f(S,T,Y).
У вас есть t тестов для решения.

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

Ввод дается в следующем формате:
t
\mathrm{case}_1
\vdots
\mathrm{case}_t

Каждый тест дается в следующем формате:
S
X
Y

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

Выведите t строк. i-я строка должна содержать Yes, если существует T, удовлетворяющее условию для данного теста, и No в противном случае.

Ограничения

- 1 \leq t \leq 5 \times 10^5
- 1 \leq |S| \leq 5\times 10^5
- 1 \leq |X|,|Y| \leq 5\times 10^5
- S — строка, состоящая из строчных английских букв.
- X и Y — строки, состоящие из 0 и 1.
- Сумма длин |S| во всех тестах входных данных не превышает 5 \times 10^5.
- Сумма длин |X| во всех тестах входных данных не превышает 5 \times 10^5.
- Сумма длин |Y| во всех тестах входных данных не превышает 5 \times 10^5.

Пример входных данных 1

3
araara
01
111
araaaa
100100
0010111
abacabac
0
1111

Пример выходных данных 1

Yes
No
No

десь операция конкатенации строк обозначена с помощью +.
Для первого теста, если T=ara, то f(S,T,X)=S+T=araaraara и f(S,T,Y)=T+T+T=araaraara, таким образом, f(S,T,X)=f(S,T,Y).
Для второго и третьего тестов не существует T, которое удовлетворяет условию.

Пример входных данных 2

2
empty
10101
00
empty
11111
111

Пример выходных данных 2

Yes
Yes

T может быть пустой.

Для строк S и T, состоящих из строчных Английских букв, и строки X, состоящей из 0 и 1, определите строку f(S,T,X), состоящую из строчных Английских букв, следующим образом:

- Начиная с пустой строки, для каждого i=1,2,\dots,|X| добавьте S в конец, если i-й символ X равен 0, и добавьте T в конец, если он равен 1.

Вам дана строка S, состоящая из строчных Английских букв, и строки X и Y, состоящие из 0 и 1.
Определите, существует ли строка T (которая может быть пустой), такая, что f(S,T,X)=f(S,T,Y).
Вам нужно решить t тестовых случаев.

Ввод

Вводные данные подаются из стандартного ввода в следующем формате:
t
\mathrm{case}_1
\vdots
\mathrm{case}_t

Каждый случай подается в следующем формате:
S
X
Y

Вывод

Выведите t строк. i-я строка должна содержать Yes, если существует T, удовлетворяющий условию для i-го тестового случая, и No в противном случае.

Ограничения

- 1 \leq t \leq 5 \times 10^5
- 1 \leq |S| \leq 5\times 10^5
- 1 \leq |X|,|Y| \leq 5\times 10^5
- S это строка, состоящая из строчных Английских букв.
- X и Y это строки, состоящие из 0 и 1.
- Сумма |S| по всем тестовым случаям в одном вводе не превышает 5 \times 10^5.
- Сумма |X| по всем тестовым случаям в одном входе не более 5 \times 10^5.
- Сумма |Y| по всем тестовым случаям в одном входе не более 5 \times 10^5.

Пример входных данных 1

3
araara
01
111
araaaa
100100
0010111
abacabac
0
1111

Пример выходных данных 1

Yes
No
No

Ниже конкатенация строк представлена с помощью +.
Для 1 тестового случая, если T=ara, то f(S,T,X)=S+T=araaraara и f(S,T,Y)=T+T+T=araaraara, поэтому f(S,T,X)=f(S,T,Y).
Для 2 и 3 тестовых случаев нет T, удовлетворяющего условию.

Пример ввода 2

2
empty
10101
00
empty
11111
111

Пример вывода 2

Yes
Yes

T может быть пустым.

Для строк S и T, состоящих из строчных английских букв, и строки X, состоящей из 0 и 1, определите строку f(S,T,X) следующим образом:

- Начинаем с пустой строки, для каждого i=1,2,\dots,|X|, добавляем в конец S, если i-й символ X равен 0, и добавляем T в конец, если он равен 1.

Вам дана строка S, состоящая из строчных английских букв, и строки X и Y, состоящие из 0 и 1.
Определите, существует ли строка T (которая может быть пустой), такая что f(S,T,X)=f(S,T,Y).
У вас есть t тестов для решения.

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

Ввод дается в следующем формате:
t
\mathrm{case}_1
\vdots
\mathrm{case}_t

Каждый тест дается в следующем формате:
S
X
Y

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

Выведите t строк. i-я строка должна содержать Yes, если существует T, удовлетворяющее условию для данного теста, и No в противном случае.

Ограничения

- 1 \leq t \leq 5 \times 10^5
- 1 \leq |S| \leq 5\times 10^5
- 1 \leq |X|,|Y| \leq 5\times 10^5
- S — строка, состоящая из строчных английских букв.
- X и Y — строки, состоящие из 0 и 1.
- Сумма длин |S| во всех тестах входных данных не превышает 5 \times 10^5.
- Сумма длин |X| во всех тестах входных данных не превышает 5 \times 10^5.
- Сумма длин |Y| во всех тестах входных данных не превышает 5 \times 10^5.

Пример входных данных 1

3
araara
01
111
araaaa
100100
0010111
abacabac
0
1111

Пример выходных данных 1

Yes
No
No

Здесь операция конкатенации строк обозначена с помощью +.
Для первого теста, если T=ara, то f(S,T,X)=S+T=araaraara и f(S,T,Y)=T+T+T=araaraara, таким образом, f(S,T,X)=f(S,T,Y).
Для второго и третьего тестов не существует T, которое удовлетворяет условию.

Пример входных данных 2

2
empty
10101
00
empty
11111
111

Пример выходных данных 2

Yes
Yes

T может быть пустой.


Вам дана перестановка P=(P_1,P_2,\dots,P_N) из (1,2,\dots,N).
Вы хотите удовлетворить P_i=i для всех i=1,2,\dots,N, выполнив следующую операцию ноль или более раз:

- Выберите целое число k, такое что 1 \leq k \leq N. Если k \geq 2, отсортируйте 1-й по (k-1)-й члены P в порядке возрастания. Затем, если k \leq N-1, отсортируйте (k+1)-й по N-й члены P в порядке возрастания.

Можно доказать, что при ограничениях этой задачи можно удовлетворить P_i=i для всех i=1,2,\dots,N с конечным числом операций для любого P. Найдите минимальное число требуемых операций.
Вам нужно решить T тестовых случаев.

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

Входные данные подаются из стандартного ввода в следующем формате:
T
\mathrm{case}_1
\vdots
\mathrm{case}_T

Каждый случай подается в следующем формате:
N
P_1 P_2 \dots P_N

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

Выведите T строк. i-я строка должна содержать ответ для i-го тестового случая.

Ограничения

- 1 \leq T \leq 10^5
- 3 \leq N \leq 2 \times 10^5
- P — это перестановка (1,2,\dots,N).
- Все входные значения являются целыми числами.
- Сумма N по всем тестовым случаям в одном входе не превышает 2 \times 10^5.

Пример ввода 1

3
5
2 1 3 5 4
3
1 2 3
7
3 2 1 7 5 6 4

Пример вывода 1

1
0
2

Для первого тестового случая

-
Выполнение операции с k=1 приводит к тому, что P становится (2,1,3,4,5).

-
Выполнение операции с k=2 приводит к тому, что P становится (2,1,3,4,5).

-
Выполнение операции с k=3 приводит к тому, что P становится (1,2,3,4,5).

-
Выполнение операции с k=4 приводит к тому, что P становится (1,2,3,5,4).

-
Выполнение операции с k=5 приводит к тому, что P становится (1,2,3,5,4).

В частности, выполнение операции с k=3 приводит к P, удовлетворяющему P_i=i для всех i=1,2,\dots,5. Таким образом, минимальное количество требуемых операций равно 1.
Для третьего тестового случая выполнение операции с k=4, за которой следует k=3, приводит к изменению P как (3,2,1,7,5,6,4) \rightarrow (1,2,3,7,4,5,6) \rightarrow (1,2,3,4,5,6,7).

Дана перестановка P=(P_1,P_2,\dots,P_N) из (1,2,\dots,N).
Вы хотите сделать так, чтобы P_i=i для всех i=1,2,\dots,N, выполняя следующую операцию ноль или более раз:

- Выберите целое число k, такое что 1 \leq k \leq N. Если k \geq 2, отсортируйте элементы с 1-го по (k-1)-й в порядке возрастания. Затем, если k \leq N-1, отсортируйте элементы с (k+1)-го по N-й в порядке возрастания.

Можно доказать, что в условиях этой задачи возможно сделать так, чтобы P_i=i для всех i=1,2,\dots,N с помощью конечного числа операций для любого P. Найдите минимальное количество необходимых операций.
У вас есть T тестовых случаев для решения.

Ввод

Ввод подается с помощью стандартного ввода в следующем формате:
T
\mathrm{case}_1
\vdots
\mathrm{case}_T

Каждый случай задан в следующем формате:
N
P_1 P_2 \dots P_N

Вывод

Выведите T строк. i-я строка должна содержать ответ для i-го тестового случая.

Ограничения

- 1 \leq T \leq 10^5
- 3 \leq N \leq 2 \times 10^5
- P является перестановкой (1,2,\dots,N).
- Все входные данные являются целыми числами.
- Сумма N по всем тестовым случаям в одном вводе не превышает 2 \times 10^5.

Пример ввода 1

3
5
2 1 3 5 4
3
1 2 3
7
3 2 1 7 5 6 4

Пример вывода 1

1
0
2

Для первого тестового случая,

- Выполнение операции с k=1 приводит к тому, что P становится (2,1,3,4,5).

- Выполнение операции с k=2 приводит к тому, что P становится (2,1,3,4,5).

- Выполнение операции с k=3 приводит к тому, что P становится (1,2,3,4,5).

- Выполнение операции с k=4 приводит к тому, что P становится (1,2,3,5,4).

- Выполнение операции с k=5 приводит к тому, что P становится (1,2,3,5,4).

Таким образом, выполнение операции с k=3 позволяет P удовлетворять условию P_i=i для всех i=1,2,\dots,5. Следовательно, минимальное количество необходимых операций равно 1.
Для третьего тестового случая выполнение операции с k=4, затем с k=3 приводит к изменению P как (3,2,1,7,5,6,4) \rightarrow (1,2,3,7,4,5,6) \rightarrow (1,2,3,4,5,6,7).


Целочисленная последовательность, в которой никакие два соседних элемента не одинаковы, называется хорошей последовательностью.
Вам даны две хорошие последовательности длины N: A=(A_1,A_2,\dots,A_N) и B=(B_1,B_2,\dots,B_N). Каждый элемент A и B находится в диапазоне от 0 до M-1, включительно.
Вы можете выполнять следующие операции над A любое количество раз, возможно, нулевое:

- Выберите целое число i от 1 до N включительно и выполните одно из следующих действий:
- Установите A_i \leftarrow (A_i + 1) \bmod M.
- Установите A_i \leftarrow (A_i - 1) \bmod M. Здесь (-1) \bmod M = M - 1.

Однако вы не можете выполнить операцию, которая сделает A не хорошей последовательностью.
Определите, возможно ли сделать A равной B, и если это возможно, найдите минимальное количество операций, необходимых для этого.

Ввод

Ввод поступает со стандартного ввода в следующем формате:
N M
A_1 A_2 \dots A_N
B_1 B_2 \dots B_N

Вывод

Если цель не достижима, выведите -1.
В противном случае выведите минимальное количество необходимых операций в виде целого числа.

Ограничения

- 2 \leq N \leq 2 \times 10^5
- 2 \leq M \leq 10^6
- 0\leq A_i,B_i< M(1\leq i\leq N)
- A_i\ne A_{i+1}(1\leq i\leq N-1)
- B_i\ne B_{i+1}(1\leq i\leq N-1)
- Все входные значения являются целыми числами.

Пример входных данных 1

3 9
2 0 1
4 8 1

Пример выходных данных 1

3

Вы можете достичь цели в трех операциях следующим образом:

- Установите A_1 \leftarrow (A_1 + 1) \bmod M. Теперь A = (3, 0, 1).
- Установите A_2 \leftarrow (A_2 - 1) \bmod M. Теперь A = (3, 8, 1).
- Установите A_1 \leftarrow (A_1 + 1) \bmod M. Теперь A = (4, 8, 1).

Невозможно достичь цели за две или менее операций, поэтому ответ 3.
Например, вы не можете установить A_2 \leftarrow (A_2 + 1) \bmod M в первой операции, потому что это сделает A = (2, 1, 1), которая не является хорошей последовательностью.

Пример входных данных 2

3 9
1 8 2
1 8 2

Пример выходных данных 2

0

A и B могут быть равны изначально.

Пример входных данных 3

24 182
128 115 133 52 166 92 164 119 143 99 54 162 86 2 59 166 24 78 81 5 109 67 172 99
136 103 136 28 16 52 2 85 134 64 123 74 64 28 85 161 19 74 14 110 125 104 180 75

Пример выходных данных 3

811

Целочисленная последовательность, в которой нет двух одинаковых соседних элементов, называется хорошей последовательностью.
Вам даны две хорошие последовательности длины N: A=(A_1,A_2,\dots,A_N) и B=(B_1,B_2,\dots,B_N). Каждый элемент A и B находится между 0 и M-1 включительно.
Вы можете выполнить следующие операции над A любое количество раз, возможно, ноль:

- Выберите целое число i между 1 и N включительно и выполните одно из следующих действий:
- Установите A_i \leftarrow (A_i + 1) \bmod M.
- Установите A_i \leftarrow (A_i - 1) \bmod M. Здесь (-1) \bmod M = M - 1.

Однако вы не можете выполнить операцию, которая сделает A нехорошей последовательностью.
Определите, возможно ли сделать A равным B, и если возможно, найдите минимальное количество операций, необходимых для этого.

Ввод

Вводные данные даются из стандартного ввода в следующем формате:
N M
A_1 A_2 \dots A_N
B_1 B_2 \dots B_N

Вывод

Если цель недостижима, выведите -1.
В противном случае выведите минимальное количество требуемых операций в виде целого числа.

Ограничения

- 2 \leq N \leq 2 \times 10^5
- 2 \leq M \leq 10^6
- 0\leq A_i,B_i< M(1\leq i\leq N)
- A_i\ne A_{i+1}(1\leq i\leq N-1)
- B_i\ne B_{i+1}(1\leq i\leq N-1)
- Все входные значения являются целыми числами.

Пример ввода 1

3 9
2 0 1
4 8 1

Пример вывода 1

3

Вы можете достичь цели за три операции следующим образом:

- Установить A_1 \leftarrow (A_1 + 1) \bmod M. Теперь A = (3, 0, 1).
- Установить A_2 \leftarrow (A_2 - 1) \bmod M. Теперь A = (3, 8, 1).
- Установить A_1 \leftarrow (A_1 + 1) \bmod M. Теперь A = (4, 8, 1).

Невозможно достичь цели за две или меньше операций, поэтому ответ 3.
Например, вы не можете установить A_2 \leftarrow (A_2 + 1) \bmod M в первой операции, потому что это сделает A = (2, 1, 1), что не является хорошей последовательностью.

Пример ввода 2

3 9
1 8 2
1 8 2

Пример вывода 2

0

A и B могут быть равны с самого начала.

Пример ввода 3

24 182
128 115 133 52 166 92 164 119 143 99 54 162 86 2 59 166 24 78 81 5 109 67 172 99
136 103 136 28 16 52 2 85 134 64 123 74 64 28 85 161 19 74 14 110 125 104 180 75

Пример вывода 3

811

Целая последовательность, в которой нет двух одинаковых соседних элементов, называется хорошей последовательностью.
Вам дают две хорошие последовательности длины  N: A=(A_1,A_2,\dots,A_N) и B=(B_1,B_2,\dots,B_N). Каждый элемент A и B находится между 0 и M-1, включительно.
Вы можете выполнить следующие операции в любое количество раз, возможно, ноль:

- Выберите целое число I между 1 и N, включительно, и выполните одно из следующих:
- Установите A_i \leftarrow (A_i + 1) \bmod M.
- Установите A_i \leftarrow (A_i - 1) \bmod M. Здесь, (-1) \ bmodM= M - 1.

Однако, вы не можете выполнить операцию, которая сделает последовательность A нехорошей.
Определите, можно ли сделать B, и, если это возможно, найдите минимальное количество операций, необходимых для этого.

Вход

Ввод приведен из стандартного ввода в следующем формате:
N M
A_1 A_2 \dots A_N
B_1 B_2 \dots B_N

Выход

Если цель недостижима, выведите -1.
В противном случае распечатайте минимальное количество операций, необходимых в качестве целого числа.

Ограничения

- 2 \leq N \leq 2 \times 10^5
- 2 \leq M \leq 10^6
- 0\leq A_i,B_i< M(1\leq i\leq N)
- A_i\ne A_{i+1}(1\leq i\leq N-1)
- B_i\ne B_{i+1}(1\leq i\leq N-1)
- Все входные значения являются целыми числами.

Пример входа 1

3 9
2 0 1
4 8 1

Пример вывода 1

3

Вы можете достичь цели в трех операциях следующим образом:

- Установите A_1 \leftarrow (A_1 + 1) \bmod M ТеперьA= (3, 0, 1).
- Установите A_2 \ leatharrow (A_2 - 1) \ bmod M. Теперь A = (3, 8, 1).
- Установите A_1 \leftarrow (A_1 + 1) \bmod M Теперь A = (4, 8, 1).

Невозможно достичь цели в двух или менее операциях, поэтому ответ 3.
Например, вы не можете установить A_2 \ Lealtharrow (A_2 + 1) \ bmod m в первой операции, потому что это сделало бы A = (2, 1, 1), что не является хорошей последовательности.

Пример входа 2

3 9
1 8 2
1 8 2

Пример вывода 2

0

A и B могут быть равны с самого начала.

Образец ввода 3

24 182
128 115 133 52 166 92 164 119 143 99 54 162 86 2 59 166 24 78 81 5 109 67 172 99
136 103 136 28 16 52 2 85 134 64 123 74 64 28 85 161 19 74 14 110 125 104 180 75

Пример вывода 3

811


Даны положительные целые числа N, M, K, неотрицательное целое число C и последовательность целых чисел A=(A_1, A_2, \ldots, A_N) длины N.
Найдите \displaystyle \sum_{k=0}^{K-1}\min_{1\le i\le N}\lbrace(Ck+A_i)\ \mathrm{mod}\ M \rbrace.

Ввод

Ввод поступает из стандартного ввода в следующем формате:
N M C K
A_1 A_2 \ldots A_N

Вывод

Выведите ответ.

Ограничения

- 1 \le N \le 10^5
- 1 \le M \le 10^9
- 0 \le C < M
- 1 \le K \le 10^9
- 0 \le A_i < M
- Все значения на вводе — целые числа.

Пример ввода 1

2 5 3 3
1 3

Пример вывода 1

4

Для k=0, \lbrace(3k+1)\ \mathrm{mod}\ 5 \rbrace=1 и \lbrace(3k+3)\ \mathrm{mod}\ 5 \rbrace=3, поэтому \displaystyle \min_{1\le i\le N}\lbrace(Ck+A_i)\ \mathrm{mod}\ M \rbrace=1.
Для k=1, \lbrace(3k+1)\ \mathrm{mod}\ 5 \rbrace=4 и \lbrace(3k+3)\ \mathrm{mod}\ 5 \rbrace=1, поэтому \displaystyle \min_{1\le i\le N}\lbrace(Ck+A_i)\ \mathrm{mod}\ M \rbrace=1.
Для k=2, \lbrace(3k+1)\ \mathrm{mod}\ 5 \rbrace=2 и \lbrace(3k+3)\ \mathrm{mod}\ 5 \rbrace=4, поэтому \displaystyle \min_{1\le i\le N}\lbrace(Ck+A_i)\ \mathrm{mod}\ M \rbrace=2.
Следовательно, ответ 1+1+2=4. Таким образом, выведите 4.

Пример ввода 2

5 4 3 182
0 3 2 1 2

Пример вывода 2

0

Пример ввода 3

5 718 651 193855
3 532 44 109 58

Пример вывода 3

29484897

Вам даны положительные целые числа N, M, K, неотрицательное целое число C и целочисленная последовательность A=(A_1, A_2, \ldots, A_N) длины N.
Найдите \displaystyle \sum_{k=0}^{K-1}\min_{1\le i\le N}\lbrace(Ck+A_i)\ \mathrm{mod}\ M \rbrace.

Ввод

Вводные данные даются из стандартного ввода в следующем формате:
N M C K
A_1 A_2 \ldots A_N

Вывод

Выведите ответ.

Ограничения

- 1 \le N \le 10^5
- 1 \le M \le 10^9
- 0 \le C < M
- 1 \le K \le 10^9
- 0 \le A_i < M
- Все входные значения являются целыми числами.

Пример ввода 1

2 5 3 3
1 3

Пример вывода 1

4

Для k=0, \lbrace(3k+1)\ \mathrm{mod}\ 5 \rbrace=1 и \lbrace(3k+3)\ \mathrm{mod}\ 5 \rbrace=3, поэтому \displaystyle \min_{1\le i\le N}\lbrace(Ck+A_i)\ \mathrm{mod}\ M \rbrace=1.
Для k=1, \lbrace(3k+1)\ \mathrm{mod}\ 5 \rbrace=4 и \lbrace(3k+3)\ \mathrm{mod}\ 5 \rbrace=1, поэтому \displaystyle \min_{1\le i\le N}\lbrace(Ck+A_i)\ \mathrm{mod}\ M \rbrace=1.
Для k=2, \lbrace(3k+1)\ \mathrm{mod}\ 5 \rbrace=2 и \lbrace(3k+3)\ \mathrm{mod}\ 5 \rbrace=4, поэтому \displaystyle \min_{1\le i\le N}\lbrace(Ck+A_i)\ \mathrm{mod}\ M \rbrace=2.
Следовательно, ответ 1+1+2=4. Следовательно, выведите 4.

Пример ввода 2

5 4 3 182
0 3 2 1 2

Пример вывода 2

0

Пример ввода 3

5 718 651 193855
3 532 44 109 58

Пример вывода 3

29484897


Вам дана последовательность целых чисел S длины N. Изначально все элементы S равны 0.

Также вам даны две последовательности целых чисел длины Q: P=(P_1,P_2,\dots,P_Q) и V=(V_1,V_2,\dots,V_Q).

Снуке хочет выполнить Q операций над последовательностью S по порядку. i-я операция выполняется следующим образом:

- Выполнить одно из следующих действий:
- Заменить каждый из элементов S_1, S_2, \dots, S_{P_i} на V_i. Однако перед этой операцией, если существует элемент среди S_1, S_2, \dots, S_{P_i}, который строго больше V_i, Снуке начнет плакать.
- Заменить каждый из элементов S_{P_i}, S_{P_i+1}, \dots, S_N на V_i. Однако перед этой операцией, если существует элемент среди S_{P_i}, S_{P_i+1}, \dots, S_N, который строго больше V_i, Снуке начнет плакать.

Найдите количество последовательностей из Q операций, при которых Снуке может выполнить все операции без слез, по модулю 998244353. Две последовательности операций различаются, если и только если существует 1 \leq i \leq Q, такое что выбор для i-й операции отличается.

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

Входные данные берутся из стандартного ввода в следующем формате:
N Q
P_1 V_1
P_2 V_2
\vdots
P_Q V_Q

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

Выведите ответ в виде целого числа.

Ограничения

- 2 \leq N \leq 5000
- 1 \leq Q \leq 5000
- 1 \leq P_i \leq N
- 1 \leq V_i \leq 10^9
- Все входные значения являются целыми числами.

Пример входных данных 1

8 3
1 8
8 1
2 1

Пример выходных данных 1

1

Снуке может выполнить три операции без слез следующим образом:

- Заменить S_1 на 8.
- Заменить S_8 на 1.
- Заменить S_2, S_3, \dots, S_8 на 1.

Никакие другие последовательности операций не удовлетворяют условиям, поэтому ответ равен 1. Например, если он заменит S_1, S_2, \dots, S_8 на 8 в первой операции, он будет плакать во второй операции, независимо от выбора.

Пример входных данных 2

8 3
8 1
1 8
1 2

Пример выходных данных 2

0

Независимо от того, как он выполнит первые две операции, он заплачет в третьей операции.

Пример входных данных 3

241 82
190 3207371
229 3639088
61 4428925
84 17258698
34 42692503
207 59753183
180 67198566
78 99285033
60 102449991
234 122146510
111 126959145
141 152331579
78 159855439
11 169658471
22 189991287
37 204602946
73 209329065
72 215363269
152 236450854
175 237822921
22 261431608
144 252550201
54 268889550
238 276997357
69 313065279
226 330144323
6 335788783
126 345410019
220 348318997
166 365778763
142 382251905
200 406191336
234 392702679
83 409660987
183 410908761
142 445707116
205 470279207
230 486436406
156 494269002
113 495687706
200 500005738
162 505246499
201 548652987
86 449551554
62 459527873
32 574001635
230 601073337
175 610244315
174 613857555
181 637452273
158 637866397
148 648101378
172 646898076
144 682578257
239 703460335
192 713255331
28 727075136
196 730768166
111 751850547
90 762445737
204 762552166
72 773170159
240 803415865
32 798873367
195 814999380
72 842641864
125 851815348
116 858041919
200 869948671
195 873324903
5 877767414
105 877710280
150 877719360
9 884707717
230 880263190
88 967344715
49 977643789
167 979463984
70 981400941
114 991068035
94 991951735
141 995762200

Пример выходных данных 3

682155965

Не забудьте взять количество по модулю 998244353.

Вам дана последовательность целых чисел S длины N. Изначально все элементы S равны 0.

Также вам даны две последовательности целых чисел длины Q: P=(P_1,P_2,\dots,P_Q) и V=(V_1,V_2,\dots,V_Q).

Снуке хочет выполнить Q операций над последовательностью S по порядку. i-я операция выполняется следующим образом:

- Выполнить одно из следующих действий:
- Заменить каждый из элементов S_1, S_2, \dots, S_{P_i} на V_i. Однако перед этой операцией, если существует элемент среди S_1, S_2, \dots, S_{P_i}, который строго больше V_i, Снуке начнет плакать.
- Заменить каждый из элементов S_{P_i}, S_{P_i+1}, \dots, S_N на V_i. Однако перед этой операцией, если существует элемент среди S_{P_i}, S_{P_i+1}, \dots, S_N, который строго больше V_i, Снуке начнет плакать.

Найдите количество последовательностей из Q операций, при которых Снуке может выполнить все операции без слез, по модулю 998244353. Две последовательности операций различаются, если и только если существует 1 \leq i \leq Q, такое что выбор для i-й операции отличается.

Вход

Входные данные берутся из стандартного ввода в следующем формате:
N Q
P_1 V_1
P_2 V_2
\vdots
P_Q V_Q

Выход

Выведите ответ в виде целого числа.

Ограничения

- 2 \leq N \leq 5000
- 1 \leq Q \leq 5000
- 1 \leq P_i \leq N
- 1 \leq V_i \leq 10^9
- Все входные значения являются целыми числами.

Пример входных данных 1

8 3
1 8
8 1
2 1

Пример выходных данных 1

1

Снуке может выполнить три операции без слез следующим образом:

- Заменить S_1 на 8.
- Заменить S_8 на 1.
- Заменить S_2, S_3, \dots, S_8 на 1.

Никакие другие последовательности операций не удовлетворяют условиям, поэтому ответ равен 1. Например, если он заменит S_1, S_2, \dots, S_8 на 8 в первой операции, он будет плакать во второй операции, независимо от выбора.

Пример входных данных 2

8 3
8 1
1 8
1 2

Пример выходных данных 2

0

Независимо от того, как он выполнит первые две операции, он заплачет в третьей операции.

Пример входных данных 3

241 82
190 3207371
229 3639088
61 4428925
84 17258698
34 42692503
207 59753183
180 67198566
78 99285033
60 102449991
234 122146510
111 126959145
141 152331579
78 159855439
11 169658471
22 189991287
37 204602946
73 209329065
72 215363269
152 236450854
175 237822921
22 261431608
144 252550201
54 268889550
238 276997357
69 313065279
226 330144323
6 335788783
126 345410019
220 348318997
166 365778763
142 382251905
200 406191336
234 392702679
83 409660987
183 410908761
142 445707116
205 470279207
230 486436406
156 494269002
113 495687706
200 500005738
162 505246499
201 548652987
86 449551554
62 459527873
32 574001635
230 601073337
175 610244315
174 613857555
181 637452273
158 637866397
148 648101378
172 646898076
144 682578257
239 703460335
192 713255331
28 727075136
196 730768166
111 751850547
90 762445737
204 762552166
72 773170159
240 803415865
32 798873367
195 814999380
72 842641864
125 851815348
116 858041919
200 869948671
195 873324903
5 877767414
105 877710280
150 877719360
9 884707717
230 880263190
88 967344715
49 977643789
167 979463984
70 981400941
114 991068035
94 991951735
141 995762200

Пример выходных данных 3

682155965

Не забудьте взять количество по модулю 998244353.

Есть целочисленная последовательность S длины N. Изначально все элементы S равны 0.
Вам также даны две целочисленные последовательности длины Q: P=(P_1,P_2,\dots,P_Q) и V=(V_1,V_2,\dots,V_Q).
Снук хочет выполнить Q операций над последовательностью S по порядку. i-я операция выглядит следующим образом:

- Выполните одно из следующих действий:
- Замените каждый из элементов S_1, S_2, \dots, S_{P_i} на V_i. Однако перед этой операцией, если среди элементов S_1, S_2, \dots, S_{P_i} есть элемент, который строго больше V_i, Снук начнет плакать.
- Замените каждый из элементов S_{P_i}, S_{P_i+1}, \dots, S_N на V_i. Однако перед этой операцией, если среди S_{P_i}, S_{P_i+1}, \dots, S_N есть элемент, который строго больше V_i, Snuke начнет плакать.

Найдите количество последовательностей операций Q, где Snuke может выполнить все операции без плача, по модулю 998244353.
Две последовательности операций различаются тогда и только тогда, когда существует 1 \leq i \leq Q, такой что выбор для i-й операции отличается.

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

Входные данные даются из стандартного ввода в следующем формате:
N Q
P_1 V_1
P_2 V_2
\vdots
P_Q V_Q

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

Выведите ответ в виде целого числа.

Ограничения

- 2 \leq N \leq 5000
- 1 \leq Q \leq 5000
- 1 \leq P_i \leq N
- 1 \leq V_i \leq 10^9
- Все входные значения являются целыми числами.

Пример ввода 1

8 3
1 8
8 1
2 1

Пример вывода 1

1

Снук может выполнить три операции без плача следующим образом:

- Replace S_1 with 8.
- Replace S_8 with 1.
- Replace S_2, S_3, \dots, S_8 with 1.

Никакие другие последовательности операций не удовлетворяют условиям, поэтому ответ 1. Например, если он заменит S_1, S_2, \dots, S_8 на 8 в первой операции, он заплачет во второй операции независимо от выбора.

Пример ввода 2

8 3
8 1
1 8
1 2

Пример вывода 2

0

Неважно, как он выполнит первые две операции, он заплачет в третьей операции.

Пример ввода 3

241 82
190 3207371
229 3639088
61 4428925
84 17258698
34 42692503
207 59753183
180 67198566
78 99285033
60 102449991
234 122146510
111 126959145
141 152331579
78 159855439
11 169658471
22 189991287
37 204602946
73 209329065
72 215363269
152 236450854
175 237822921
22 261431608
144 252550201
54 268889550
238 276997357
69 313065279
226 330144323
6 335788783
126 345410019
220 348318997
166 365778763
142 382251905
200 406191336
234 392702679
83 409660987
183 410908761
142 445707116
205 470279207
230 486436406
156 494269002
113 495687706
200 500005738
162 505246499
201 548652987
86 449551554
62 459527873
32 574001635
230 601073337
175 610244315
174 613857555
181 637452273
158 637866397
148 648101378
172 646898076
144 682578257
239 703460335
192 713255331
28 727075136
196 730768166
111 751850547
90 762445737
204 762552166
72 773170159
240 803415865
32 798873367
195 814999380
72 842641864
125 851815348
116 858041919
200 869948671
195 873324903
5 877767414
105 877710280
150 877719360
9 884707717
230 880263190
88 967344715
49 977643789
167 979463984
70 981400941
114 991068035
94 991951735
141 995762200

Пример вывода 3

682155965

Не забудьте взять значение по модулю 998244353.


Целочисленная последовательность длиной от 1 до N включительно, где каждый элемент находится в пределах от 1 до M включительно, называется хорошей последовательностью.
Оценка хорошей последовательности определяется как количество положительных делителей X, где X — произведение элементов в последовательности.
Существует \displaystyle \sum_{k=1}^{N}M^k хороших последовательностей. Найдите сумму оценок всех этих последовательностей по модулю 998244353.

Ввод

Ввод поступает из стандартного ввода в следующем формате:
N M

Вывод

Вывести ответ в виде целого числа.

Ограничения

- 1 \leq N \leq 10^{18}
- 1 \leq M \leq 16
- Все входные значения — целые числа.

Пример ввода 1

1 7

Пример вывода 1

16

Существует семь хороших последовательностей: (1),(2),(3),(4),(5),(6),(7). Их оценки: 1,2,2,3,2,4,2, соответственно, поэтому ответ — 1+2+2+3+2+4+2=16.

Пример ввода 2

3 11

Пример вывода 2

16095

Например, (8,11) и (1,8,2) — хорошие последовательности. Процесс вычисления их оценок:

- Произведение элементов в (8,11) равно 8 \times 11 = 88. 88 имеет восемь положительных делителей: 1,2,4,8,11,22,44,88, поэтому оценка (8,11) равна 8.
- Произведение элементов в (1,8,2) равно 1 \times 8 \times 2 = 16. 16 имеет пять положительных делителей: 1,2,4,8,16, поэтому оценка (1,8,2) равна 5.

Пример ввода 3

81131 14

Пример вывода 3

182955659

Не забудьте взять результат по модулю 998244353.

Последовательность целых чисел длиной между 1 и N включительно, где каждый элемент находится между 1 и M включительно, называется позитивной последовательностью.
Значение позитивной последовательности определяется как число положительных делителей X, где X - это произведение элементов последовательности.
Существуют позитивные последовательности \displaystyle \sum_{k=1}^{N}M^k. Найдите сумму значений всех этих последовательностей по модулю 998244353.

Input

The input is given from Standard Input in the following format:
N M

Output

Print the answer as an integer.

Constraints

- 1 \leq N \leq 10^{18}
- 1 \leq M \leq 16
- All input values are integers.

Sample Input 1

1 7

Sample Output 1

16

There are seven good sequences: (1),(2),(3),(4),(5),(6),(7). Their scores are 1,2,2,3,2,4,2, respectively, so the answer is 1+2+2+3+2+4+2=16.

Sample Input 2

3 11

Sample Output 2

16095

For example, (8,11) and (1,8,2) are good sequences. Here is the process of calculating their scores:

- The product of the elements in (8,11) is 8 \times 11 = 88. 88 has eight positive divisors: 1,2,4,8,11,22,44,88, so the score of (8,11) is 8.
- The product of the elements in (1,8,2) is 1 \times 8 \times 2 = 16. 16 has five positive divisors: 1,2,4,8,16, so the score of (1,8,2) is 5.

Sample Input 3

81131 14

Sample Output 3

182955659

Remember to take the result modulo 998244353.


Даны целочисленные последовательности длиной N: A=(A_1,A_2,\cdots,A_N) и B=(B_1,B_2,\cdots,B_N), и целое число K.
Можно выполнить следующую операцию ноль или более раз.

- Выбери целые числа i и j (1 \leq i,j \leq N).
Здесь должно выполняться условие |i-j| \leq K.
Затем измени значение A_i на A_j.

Определи, возможно ли сделать A идентичной B.
Для каждого входного значения дается T тестовых случаев.

Ввод

Ввод осуществляется посредством стандартного ввода в следующем формате:
T
case_1
case_2
\vdots
case_T

Каждый тестовый случай задается в следующем формате:
N K
A_1 A_2 \cdots A_N
B_1 B_2 \cdots B_N

Вывод

Для каждого теста выведи Yes, если возможно сделать A идентичной B, и No в противном случае.

Ограничения

- 1 \leq T \leq 125000
- 1 \leq K < N \leq 250000
- 1 \leq A_i,B_i \leq N
- Сумма всех N во всех тестовых случаях не превышает 250000.
- Все входные значения — целые числа.

Пример ввода 1

4
3 1
1 1 2
1 2 2
5 4
2 4 5 1 3
2 1 3 2 2
13 1
3 1 3 3 5 3 3 4 2 2 2 5 1
5 3 3 3 4 2 2 2 2 5 5 1 3
20 14
10 6 6 19 13 16 15 15 2 10 2 16 9 12 2 6 13 5 5 9
5 9 6 2 10 19 16 15 13 12 10 2 9 6 5 16 19 12 15 13

Пример вывода 1

Yes
Yes
No
Yes

Рассмотрим первый тест.
Если мы возьмем i=2 и j=3, значение A_2 будет изменено на A_3=2, в результате получим A=(1,2,2).

Вам даны целочисленные последовательности длины N: A=(A_1,A_2,\cdots,A_N) и B=(B_1,B_2,\cdots,B_N), а также целое число K.
Вы можете выполнить следующую операцию ноль или более раз.

- Выберите целые числа i и j (1 \leq i,j \leq N).
Здесь должно быть выполнено |i-j| \leq K.
Затем измените значение A_i на A_j.

Определите, возможно ли сделать A идентичным B.
Для каждого входа есть T тестовых случаев.

Ввод

Вводные данные подаются из стандартного ввода в следующем формате:
T
case_1
case_2
\vdots
case_T

Каждый тестовый случай подается в следующем формате:
N K
A_1 A_2 \cdots A_N
B_1 B_2 \cdots B_N

Вывод

Для каждого тестового случая выведите Yes, если возможно сделать A идентичным B, и No в противном случае.

Ограничения

- 1 \leq T \leq 125000
- 1 \leq K < N \leq 250000
- 1 \leq A_i,B_i \leq N
- Сумма N по всем тестовым случаям в каждом вводе не превышает 250000.
- Все входные значения являются целыми числами.

Пример ввода 1

4
3 1
1 1 2
1 2 2
5 4
2 4 5 1 3
2 1 3 2 2
13 1
3 1 3 3 5 3 3 4 2 2 2 5 1
5 3 3 3 4 2 2 2 2 5 5 1 3
20 14
10 6 6 19 13 16 15 15 2 10 2 16 9 12 2 6 13 5 5 9
5 9 6 2 10 19 16 15 13 12 10 2 9 6 5 16 19 12 15 13

Пример вывода 1

Yes
Yes
No
Yes

Рассмотрим первый тестовый случай.
Если мы работаем с i=2 и j=3, значение A_2 изменится на A_3=2, что приведет к A=(1,2,2).

Вам даны целочисленные последовательности длины N: A=(A_1,A_2,\cdots,A_N) и B=(B_1,B_2,\cdots,B_N), а также целое число K.
Вы можете выполнить следующую операцию ноль или более раз.

- Выберите целые числа i и j (1 \leq i,j \leq N).
Здесь должно быть выполнено |i-j| \leq K.
Затем измените значение A_i на A_j.

Определите, возможно ли сделать A идентичным B.
Для каждого входа есть T тестовых случаев.

Ввод

Вводные данные подаются из стандартного ввода в следующем формате:
T
case_1
case_2
\vdots
case_T

Каждый тестовый случай подается в следующем формате:
N K
A_1 A_2 \cdots A_N
B_1 B_2 \cdots B_N

Вывод

Для каждого тестового случая выведите Yes, если возможно сделать A идентичным B, и No в противном случае.

Ограничения

- 1 \leq T \leq 125000
- 1 \leq K < N \leq 250000
- 1 \leq A_i,B_i \leq N
- The sum of N across all test cases in each input is at most 250000.
- Все входные значения являются целыми числами.

Пример ввода 1

4
3 1
1 1 2
1 2 2
5 4
2 4 5 1 3
2 1 3 2 2
13 1
3 1 3 3 5 3 3 4 2 2 2 5 1
5 3 3 3 4 2 2 2 2 5 5 1 3
20 14
10 6 6 19 13 16 15 15 2 10 2 16 9 12 2 6 13 5 5 9
5 9 6 2 10 19 16 15 13 12 10 2 9 6 5 16 19 12 15 13

Пример вывода 1

Yes
Yes
No
Yes

Рассмотрим первый тестовый случай.
Если мы работаем с i=2 и j=3, значение A_2 изменится на A_3=2, что приведет к A=(1,2,2).


Найдите количество, по модулю 998244353, перестановок P=(P_1,P_2,\cdots,P_N) из (1,2,\cdots,N), которые удовлетворяют всем следующим M условиям.

- i-е условие: Максимальное среди P_{L_i},P_{L_i+1},\cdots,P_{R_i} не равно P_{X_i}. Здесь L_i, R_i и X_i — целые числа, заданные во входных данных.

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

Входные данные поступают со стандартного ввода в следующем формате:
N M
L_1 R_1 X_1
L_2 R_2 X_2
\vdots
L_M R_M X_M

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

Выведите ответ.

Ограничения

- 1 \leq N \leq 500
- 1 \leq M \leq 10^5
- 1 \leq L_i \leq X_i \leq R_i \leq N
- Все входные значения являются целыми числами.

Пример входных данных 1

3 2
1 3 2
1 2 1

Пример выходных данных 1

1

Только одна перестановка, P=(1,2,3), удовлетворяет условиям.

Пример входных данных 2

5 1
1 1 1

Пример выходных данных 2

0

Пример входных данных 3

10 5
3 8 4
3 10 4
1 7 2
1 8 3
3 8 7

Пример выходных данных 3

1598400

Пример входных данных 4

15 17
2 11 9
2 15 13
1 14 2
5 11 5
3 15 11
1 6 2
4 15 12
3 11 6
9 13 10
2 14 6
10 15 11
1 8 6
6 14 8
2 10 2
6 12 6
3 14 12
2 6 2

Пример выходных данных 4

921467228

Найдите число по модулю 998244353 перестановок P=(P_1,P_2,\cdots,P_N) из (1,2,\cdots,N), которые удовлетворяют всем следующим условиям M.

- i-е условие: Максимум среди P_{L_i},P_{L_i+1},\cdots,P_{R_i} не равен P_{X_i}.
Здесь L_i, R_i и X_i — целые числа, заданные во входных данных.

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

Входные данные даются из стандартного ввода в следующем формате:
N M
L_1 R_1 X_1
L_2 R_2 X_2
\vdots
L_M R_M X_M

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

Выведите ответ.

Ограничения

- 1 \leq N \leq 500
- 1 \leq M \leq 10^5
- 1 \leq L_i \leq X_i \leq R_i \leq N
- Все входные значения являются целыми числами.

Пример ввода 1

3 2
1 3 2
1 2 1

Пример вывода 1

1

Только одна перестановка, P=(1,2,3), удовлетворяет условиям.

Пример ввода 2

5 1
1 1 1

Пример вывода 2

0

Пример ввода 3

10 5
3 8 4
3 10 4
1 7 2
1 8 3
3 8 7

Пример вывода 3

1598400

Пример ввода 4

15 17
2 11 9
2 15 13
1 14 2
5 11 5
3 15 11
1 6 2
4 15 12
3 11 6
9 13 10
2 14 6
10 15 11
1 8 6
6 14 8
2 10 2
6 12 6
3 14 12
2 6 2

Пример вывода 4

921467228

По модулю 998244353 найди количество перестановок P=(P_1,P_2,\cdots,P_N) из (1,2,\cdots,N), которые удовлетворяют всем следующим условиям М.

- i-е условие: Максимум среди P_{L_i},P_{L_i+1},\cdots,P_{R_i} не равен P_{X_i}. Здесь L_i, R_i и X_i — целые числа, заданные во входных данных.

Ввод

Ввод осуществляется посредством стандартного ввода в следующем формате:
N M
L_1 R_1 X_1
L_2 R_2 X_2
\vdots
L_M R_M X_M

Вывод

Выведи ответ.

Ограничения

- 1 \leq N \leq 500
- 1 \leq M \leq 10^5
- 1 \leq L_i \leq X_i \leq R_i \leq N
- Все входные значения являются целыми числами.

Пример ввода 1

3 2
1 3 2
1 2 1

Пример вывода 1

1

Только одна перестановка, P=(1,2,3), удовлетворяет условиям.

Пример ввода 2

5 1
1 1 1

Пример вывода 2

0

Пример ввода 3

10 5
3 8 4
3 10 4
1 7 2
1 8 3
3 8 7

Пример вывода 3

1598400

Пример ввода 4

15 17
2 11 9
2 15 13
1 14 2
5 11 5
3 15 11
1 6 2
4 15 12
3 11 6
9 13 10
2 14 6
10 15 11
1 8 6
6 14 8
2 10 2
6 12 6
3 14 12
2 6 2

Пример вывода 4

921467228


Вам даны положительные целые числа N и K.
Последовательность целых чисел длины NK, где каждое целое число от 1 до N встречается ровно K раз, называется хорошей последовательностью целых чисел.
Пусть S будет числом хороших последовательностей целых чисел.
Найдите \operatorname{floor}((S+1)/2)-ю хорошую последовательность целых чисел в лексикографическом порядке.
Здесь \operatorname{floor}(x) представляет наибольшее целое число, не превышающее x.
Каков лексикографический порядок для последовательностей?
Последовательность S = (S_1,S_2,\ldots,S_{|S|}) лексикографически меньше последовательности T = (T_1,T_2,\ldots,T_{|T|}), если выполняется одно из следующих условий: 1. или 2.
Здесь |S| и |T| представляют длины S и T соответственно.

- |S| \lt |T| и (S_1,S_2,\ldots,S_{|S|}) = (T_1,T_2,\ldots,T_{|S|}).
- Существует целое число 1 \leq i \leq \min\lbrace |S|, |T| \rbrace такое, что выполняются оба следующих условия:

- (S_1,S_2,\ldots,S_{i-1}) = (T_1,T_2,\ldots,T_{i-1})
- S_i (численно) меньше T_i.

Ввод

Ввод дается из стандартного ввода в следующем формате:
N K

Вывод

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

Ограничения

- 1 \leq N \leq 500
- 1 \leq K \leq 500
- Все входные значения являются целыми числами.

Пример ввода 1

2 2

Пример вывода 1

1 2 2 1

Имеется шесть хороших целочисленных последовательностей:

- (1,1,2,2)
- (1,2,1,2)
- (1,2,2,1)
- (2,1,1,2)
- (2,1,2,1)
- (2,2,1,1)

Следовательно, ответом является 3-я последовательность в лексикографическом порядке, (1,2,2,1).

Пример ввода 2

1 5

Пример вывода 2

1 1 1 1 1

Пример ввода 3

6 1

Пример вывода 3

3 6 5 4 2 1

Пример ввода 4

3 3

Пример вывода 4

2 2 2 1 3 3 3 1 1

Вам даны целые положительные числа N и K.
Целочисленная последовательность длины NK, в которой каждое целое число от 1 до N встречается ровно K раз, называется хорошей целочисленной последовательностью.
Пусть S — количество хороших целых последовательностей.
Найдите \operatorname{floor}((S+1)/2)-ю хорошую последовательность целых чисел в лексикографическом порядке.
Здесь \operatorname{floor}(x) — наибольшее целое число, не превосходящее x.
 Что такое лексикографический порядок для последовательностей?
Последовательность S = (S_1,S_2,\ldots,S_{|S|}) лексикографически меньше последовательности T = (T_1,T_2,\ldots,T_{|T|}), если выполняется либо 1. либо 2. ниже.
Здесь |S| и |T| представляют собой длины S и T, соответственно.

-  |S| \lt |T| and (S_1,S_2,\ldots,S_{|S|}) = (T_1,T_2,\ldots,T_{|S|}).
- Существует целое число 1 \leq i \leq \min\lbrace |S|, |T| \rbrace такое, что выполняются оба следующих условия:

-  (S_1,S_2,\ldots,S_{i-1}) = (T_1,T_2,\ldots,T_{i-1})
- S_i (численно) меньше T_i.

Ввод

Вводные данные передаются из стандартного ввода в следующем формате:
N K

Вывод

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

Ограничения

- 1 \leq N \leq 500
- 1 \leq K \leq 500
- Все вводные значения являются целыми числами.

Пример ввода 1

2 2

Пример вывода 1

1 2 2 1

Существует шесть хороших последовательностей целых чисел:

- (1,1,2,2)
- (1,2,1,2)
- (1,2,2,1)
- (2,1,1,2)
- (2,1,2,1)
- (2,2,1,1)

Таким образом, ответом является 3-я последовательность в лексикографическом порядке, (1,2,2,1).

Пример ввода 2

1 5

Пример вывода 2

1 1 1 1 1

Пример ввода 3

6 1

Пример вывода 3

3 6 5 4 2 1

Пример ввода 4

3 3

Пример вывода 4

2 2 2 1 3 3 3 1 1

Вам даны целые положительные числа N и K.
Целочисленная последовательность длины NK, в которой каждое целое число от 1 до N встречается ровно K раз, называется хорошей целочисленной последовательностью.
Пусть S будет количество хороших целочисленных последовательностей.
Найдите operatorname{floor}((S+1)/2)-ю хорошую целочисленную последовательность в лексикографическом порядке.
Здесь operatorname{floor}(x) представляет собой наибольшее целое число, не превышающее x.
 Что такое лексикографический порядок последовательностей?
Последовательность S = (S_1,S_2,\ldots,S_{|S|}) лексикографически меньше последовательности (T_1,T_2,\ldots,T_{|T|}), если либо 1., либо 2. ниже держит.
Здесь |S| и |T| представляют длины S и T соответственно.

-  |S| \lt |T| и (S_1,S_2,\ldots,S_{|S|}) = (T_1,T_2,\ldots,T_{|S|}).
- Существует целое число 1 \leq i \leq \min\lbrace |S|, |T| \rbrace так, что выполняются оба следующих условия:

-  (S_1,S_2,\ldots,S_{i-1}) = (T_1,T_2,\ldots,T_{i-1})
- S_i (численно) меньше, чем T_i.

Вход

Входные данные передаются из стандартного ввода в следующем формате:
N K

Выход

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

Ограничения

- 1 \leq N \leq 500
- 1 \leq K \leq 500
- Все входные значения являются целыми числами.

Пример ввода 1

2 2

Пример вывода 1

1 2 2 1

Есть шесть хороших целочисленных последовательностей:

- (1,1,2,2)
- (1,2,1,2)
- (1,2,2,1)
- (2,1,1,2)
- (2,1,2,1)
- (2,2,1,1)

Следовательно, ответом является третья последовательность в лексикографическом порядке (1,2,2,1).

Пример ввода 2

1 5

Пример вывода 2

1 1 1 1 1

Пример ввода 3

6 1

Пример вывода 3

3 6 5 4 2 1

Пример ввода 4

3 3

Пример вывода 4

2 2 2 1 3 3 3 1 1


Есть дерево с N вершинами, пронумерованными от 1 до N.
i-е ребро соединяет вершины A_i и B_i.
Здесь N четное, и, кроме того, это дерево имеет идеальное паросочетание.
В частности, для каждого i (1 \leq i \leq N/2) гарантируется, что A_i=i \times 2-1 и B_i=i \times 2.
Вы выполните следующую операцию N/2 раз:

- Выберите два листа (вершины со степенью ровно 1) и удалите их из дерева.
При этом дерево после удаления должно по-прежнему иметь идеальное паросочетание.
В этой задаче мы считаем граф с нулевыми вершинами также деревом.

Для каждой операции ее оценка определяется как расстояние между двумя выбранными вершинами (количество ребер на простом пути, соединяющем две вершины).
Покажите одну процедуру, которая максимизирует общую оценку.
Можно доказать, что всегда существует процедура для выполнения N/2 операций при ограничениях этой задачи.

Ввод

Ввод дается из стандартного ввода в следующем формате:
N
A_1 B_1
A_2 B_2
\vdots
A_{N-1} B_{N-1}

Вывод

Выведите решение в следующем формате:
X_1 Y_1
X_2 Y_2
\vdots
X_{N/2} Y_{N/2}

Здесь X_i и Y_i — две вершины, выбранные в i-й операции.
Если есть несколько решений, вы можете вывести любое из них.

Ограничения

- 2 \leq N \leq 250000
- N четное.
- 1 \leq A_i < B_i \leq N (1 \leq i \leq N-1)
- A_i=i \times 2 -1, B_i=i \times 2 (1 \leq i \leq N/2)
- Данный граф является деревом.
- Все входные значения являются целыми числами.

Пример входных данных 1

4
1 2
3 4
2 3

Пример выходных данных 1

4 1
2 3

Процедура в примере выходных данных выглядит следующим образом:

- 1-я операция: удалить вершины 4 и 1. Оставшееся дерево имеет вершины 2 и 3 и идеальное паросочетание. Оценка этой операции составляет 3.
- 2-я операция: удалить вершины 2 и 3. Оставшееся дерево имеет ноль вершин и идеальное паросочетание. Оценка этой операции — 1.
- Общая оценка — 3 + 1 = 4.

Невозможно сделать общую оценку больше 4, поэтому этот вывод решает этот пример ввода.

Пример ввода 2

8
1 2
3 4
5 6
7 8
2 3
1 5
1 7

Пример вывода 2

4 8
7 6
5 3
2 1

Пример ввода 3

14
1 2
3 4
5 6
7 8
9 10
11 12
13 14
2 8
4 11
5 12
7 13
11 14
9 13

Пример вывода 3

1 6
5 2
8 12
3 7
10 4
11 9
13 14

Пример ввода 4

20
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
8 10
16 18
16 19
5 9
10 17
2 13
7 14
3 7
3 12

Пример вывода 4

6 1
2 15
20 13
14 19
16 4
11 18
17 12
3 5
9 7
8 10

Имеется дерево с N вершинами, пронумерованными от 1 до N.
i-е ребро соединяет вершины A_i и B_i.
Здесь N чётно, и, кроме того, это дерево имеет идеальное паросочетание.
В частности, для каждого i (1 \leq i \leq N/2), гарантируется, что A_i=i \times 2-1 и B_i=i \times 2.
Вы выполните следующую операцию N/2 раза:

- Выберите два листа (вершины со степенью ровно 1) и удалите их из дерева.
Здесь дерево после удаления должно по-прежнему иметь идеальное соответствие.
В этой задаче мы считаем, что граф с нулевыми вершинами также является деревом.

Для каждой операции её оценка определяется как расстояние между двумя выбранными вершинами (количество рёбер на простом пути, соединяющем две вершины).
Покажите одну процедуру, которая максимизирует общий балл.
Можно доказать, что всегда существует процедура, выполняющая N/2 операций при ограничениях этой задачи.

Ввод

Вводные данные передаются из стандартного ввода в следующем формате:
N
A_1 B_1
A_2 B_2
\vdots
A_{N-1} B_{N-1}

Вывод

Выведите решение в следующем формате:
X_1 Y_1
X_2 Y_2
\vdots
X_{N/2} Y_{N/2}

Здесь X_i и Y_i это две вершины, выбранные в i-й операции.
Если решений несколько, вы можете вывести любое из них.

Ограничения

- 2 \leq N \leq 250000
- N чётное.
- 1 \leq A_i < B_i \leq N (1 \leq i \leq N-1)
- A_i=i \times 2 -1, B_i=i \times 2 (1 \leq i \leq N/2)
- Данный график является деревом.
- Все входные значения являются целыми числами.

Пример ввода 1

4
1 2
3 4
2 3

Пример вывода 1

4 1
2 3

Процедура в примере выходных данных выглядит следующим образом:

- 1-я операция: Удалить вершины 4 и 1. Оставшееся дерево имеет вершины 2 и 3 и полное совпадение. Оценка этой операции 3.
- 2-я операция: Удалить вершины 2 и 3. Оставшееся дерево имеет ноль вершин и идеальное совпадение. Оценка этой операции 1.
- Общий балл 3+1=4.

Невозможно получить общий балл больше 4, поэтому эти выходные данные решают этот пример входных данных.

Пример ввода 2

8
1 2
3 4
5 6
7 8
2 3
1 5
1 7

Пример вывода 2

4 8
7 6
5 3
2 1

Пример ввода 3

14
1 2
3 4
5 6
7 8
9 10
11 12
13 14
2 8
4 11
5 12
7 13
11 14
9 13

Пример вывода 3

1 6
5 2
8 12
3 7
10 4
11 9
13 14

Пример ввода 4

20
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
8 10
16 18
16 19
5 9
10 17
2 13
7 14
3 7
3 12

Пример вывода 4

6 1
2 15
20 13
14 19
16 4
11 18
17 12
3 5
9 7
8 10

Существует дерево с N вершинами, пронумерованными от 1 до N.
Ребро i-th соединяет вершины A_i и B_i.
Здесь N является четным числом, более того, у этого дерева идеальное сопоставление.
В особенности, для каждого i (1 \leq i \leq N/2) гарантировано, что A_i=i \times 2-1 и B_i=i \times 2.
Вы осуществите следующее действие N/2 раз:

- Выберите пару листьев (вершины со степенью обязательно 1) и удалите их с дерева.
Здесь дерево после удаления должно всё ещё иметь идеальное сопоставление.
В этом вопросе мы считаем, что графа с нулевыми вершинами также является деревом.

Для каждого действия его точность определяется как расстояние между двумя выбранными вершинами (количество ребер на простом пути, соединяющих две вершины).
Покажите один способ, который максимизирует общую точность.
Может быть доказано, что всегда существует способ завершить действия N/2 в пределах ограничений этого вопроса.

Input

The input is given from Standard Input in the following format:
N
A_1 B_1
A_2 B_2
\vdots
A_{N-1} B_{N-1}

Output

Print a solution in the following format:
X_1 Y_1
X_2 Y_2
\vdots
X_{N/2} Y_{N/2}

Here, X_i and Y_i are the two vertices chosen in the i-th operation.
If there are multiple solutions, you may print any of them.

Constraints

- 2 \leq N \leq 250000
- N is even.
- 1 \leq A_i < B_i \leq N (1 \leq i \leq N-1)
- A_i=i \times 2 -1, B_i=i \times 2 (1 \leq i \leq N/2)
- The given graph is a tree.
- All input values are integers.

Sample Input 1

4
1 2
3 4
2 3

Sample Output 1

4 1
2 3

The procedure in the sample output is as follows:

- 1st operation: Remove vertices 4 and 1. The remaining tree has vertices 2 and 3, and a perfect matching. The score of this operation is 3.
- 2nd operation: Remove vertices 2 and 3. The remaining tree has zero vertices and a perfect matching. The score of this operation is 1.
- The total score is 3 + 1 = 4.

It is impossible to make the total score greater than 4, so this output solves this sample input.

Sample Input 2

8
1 2
3 4
5 6
7 8
2 3
1 5
1 7

Sample Output 2

4 8
7 6
5 3
2 1

Sample Input 3

14
1 2
3 4
5 6
7 8
9 10
11 12
13 14
2 8
4 11
5 12
7 13
11 14
9 13

Sample Output 3

1 6
5 2
8 12
3 7
10 4
11 9
13 14

Sample Input 4

20
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
8 10
16 18
16 19
5 9
10 17
2 13
7 14
3 7
3 12

Sample Output 4

6 1
2 15
20 13
14 19
16 4
11 18
17 12
3 5
9 7
8 10


Вам даны положительные целые числа n и target.
Массив nums называется красивым, если он соответствует следующим условиям:

nums.length == n.
nums состоит из попарно различных положительных целых чисел.
Не существует двух различных индексов i и j в диапазоне [0, n - 1], таких, что nums[i] + nums[j] == target.

Верните минимальную возможную сумму, которую может иметь красивый массив, по модулю 10^9 + 7.

Пример 1:

Ввод: n = 2, target = 3
Вывод: 4
Объяснение: Мы видим, что nums = [1,3] является красивым.
- Массив nums имеет длину n = 2.
- Массив nums состоит из попарно различных положительных целых чисел.
- Не существует двух различных индексов i и j, для которых nums[i] + nums[j] == 3.
Можно доказать, что 4 — это минимальная возможная сумма, которую может иметь красивый массив.

Пример 2:

Ввод: n = 3, target = 3
Вывод: 8
Объяснение: Мы видим, что nums = [1,3,4] является красивым.
- Массив nums имеет длину n = 3.
- Массив nums состоит из попарно различных положительных целых чисел.
- Не существует двух различных индексов i и j, для которых nums[i] + nums[j] == 3.
Можно доказать, что 8 — это минимальная возможная сумма, которую может иметь красивый массив.

Пример 3:

Ввод: n = 1, target = 1
Вывод: 1
Объяснение: Мы видим, что nums = [1] является красивым.

Ограничения:

1 <= n <= 10^9
1 <= target <= 10^9

Вам даны положительные целые числа n и target.
Массив nums называется красивым, если он соответствует следующим условиям:

nums.length == n.
nums состоит из попарно различных положительных целых чисел.
Не существует двух различных индексов i и j в диапазоне [0, n - 1], таких, что nums[i] + nums[j] == target.

Верните минимальную возможную сумму, которую может иметь красивый массив, по модулю 10^9 + 7.

Пример 1:

Input: n = 2, target = 3
Output: 4
Explanation: Мы видим, что nums = [1,3] является красивым.
- Массив nums имеет длину n = 2.
- Массив nums состоит из попарно различных положительных целых чисел.
- Не существует двух различных индексов i и j, для которых nums[i] + nums[j] == 3.
Можно доказать, что 4 — это минимальная возможная сумма, которую может иметь красивый массив.

Пример 2:

Input: n = 3, target = 3
Output: 8
Explanation: Мы видим, что nums = [1,3,4] является красивым.
- Массив nums имеет длину n = 3.
- Массив nums состоит из попарно различных положительных целых чисел.
- Не существует двух различных индексов i и j, для которых nums[i] + nums[j] == 3.
Можно доказать, что 8 — это минимальная возможная сумма, которую может иметь красивый массив.

Пример 3:

Input: n = 1, target = 1
Output: 1
Explanation: Мы видим, что nums = [1] является красивым.

Ограничения:

1 <= n <= 10^9
1 <= target <= 10^9

Вам дают положительные целые числа n и цель.
Массив чисел считается красивым, если он соответствует следующим условиям:

nums.length == n.
nums состоит из попарно различных положительных целых чисел.
Не существует двух отдельных индексов, i и j, в диапазоне [0, n - 1], такие, что nums[i] + nums[j] == цель.

Верните минимальную возможную сумму, которую красивый массив может иметь модулю 10^9 + 7.

Пример 1:

Ввод: n = 2, target = 3
Вывод: 4
Объяснение: Мы видим, что nums = [1,3] красиво.
- Массив чисел имеют длину n = 2.
- Массив чисел состоит из попарно различных положительных целых чисел.
- Не существует двух отдельных индексов, i и j, с nums [i] + nums [j] == 3.
Можно доказать, что 4 — это минимально возможная сумма, которую может иметь красивый массив.

Пример 2:

Ввод: n = 3, target = 3
Вывод: 8
Объяснение: Мы видим, что nums = [1,3,4] красиво.
- Массив чисел имеют длину n = 3.
- Массив чисел состоит из различных положительных целых чисел.
- Не существует двух отдельных индексов, i и j, с nums [i] + nums [j] == 3.
Можно доказано, что 8 - минимально возможная сумма, которую мог бы иметь красивый массив.

Пример 3:

Ввод: n = 1, target = 1
Вывод: 1
Объяснение: Мы можем видеть, что nums = [1] красиво.

Ограничения:

1 <= n <= 10^9
1 <= target <= 10^9


Вам дана двоичная строка s и целое число k.
Двоичная строка удовлетворяет k-ограничению, если выполняется одно из следующих условий:

Количество нулей в строке не более k.
Количество единиц в строке не более k.

Верните целое число, обозначающее количество подстрок s, удовлетворяющих k-ограничению.

Пример 1:

Вход: s = "10101", k = 1
Выход: 12
Объяснение:
Каждая подстрока s, кроме подстрок "1010", "10101" и "0101", удовлетворяет k-ограничению.

Пример 2:

Вход: s = "1010101", k = 2
Выход: 25
Пояснение:
Каждая подстрока s, за исключением подстрок с длиной больше 5, удовлетворяет k-ограничению.

Пример 3:

Вход: s = "11111", k = 1
Выход: 15
Пояснение:
Все подстроки s удовлетворяют k-ограничению.

Ограничения:

1 <= s.length <= 50
1 <= k <= s.length
s[i] равно либо '0', либо '1'.

Вам дана двоичная строка s и целое число k.
Двоичная строка удовлетворяет k-ограничение, если выполняется любое из следующих условий:

Количество 0 в строке не превышает k.
Количество 1 в строке не превышает k.

Возвращает целое число, обозначающее количество подстрок s, удовлетворяющих k-ограничение.

Пример 1:

Ввод: s = "10101", k = 1
Выход: 12
Объяснение:
Каждая подстрока s, за исключением подстрок "1010", "10101", и "0101" удовлетворяет k-ограничение.

Пример 2:

Ввод: s = "1010101", k = 2
Выход: 25
Объяснение:
Каждая подстрока s, за исключением подстрок длиной более 5, удовлетворяет k-ограничение.

Пример 3:

Ввод: s = "11111", k = 1
Выход: 15
Объяснение:
Все подстроки s удовлетворяют k-ограничение.

Ограничения:

1 <= s.length <= 50
1 <= k <= s.length
s[i] is either '0' or '1'

Вам дана двоичная строка s и целое число k.
Двоичная строка удовлетворяет k-ограничению, если выполняется одно из следующих условий:

Количество '0' в строке не больше k.
Количество '1' в строке не больше k.

Верните целое число, обозначающее количество подстрок s, которые удовлетворяют k-ограничению.

Пример 1:

Ввод: s = "10101", k = 1
Вывод: 12
Объяснение:
Все подстроки s, за исключением подстрок "1010", "10101" и "0101", удовлетворяют k-ограничению.

Пример 2:

Ввод: s = "1010101", k = 2
Вывод: 25
Объяснение:
Все подстроки s, за исключением тех, чья длина больше 5, удовлетворяют k-ограничению.

Пример 3:

Ввод: s = "11111", k = 1
Вывод: 15
Объяснение:
Все подстроки s удовлетворяют k-ограничению.

Ограничения:

1 <= s.length <= 50
1 <= k <= s.length
s[i] является либо '0', либо '1'.


Футуристический спортивный учёный дал вам два целочисленных массива energyDrinkA и energyDrinkB одинаковой длины n. Эти массивы представляют собой прирост энергии в час, обеспечиваемый двумя разными энергетическими напитками, A и B соответственно.
Вы хотите максимизировать общий прирост энергии, выпивая один энергетический напиток в час. Однако, если вы хотите перейти от употребления одного энергетического напитка к другому, вам нужно подождать один час, чтобы очистить организм (это означает, что за этот час вы не получите никакого заряда энергии).
Верните максимальный общий прирост энергии, который вы можете получить в течение следующих n часов.
Обратите внимание, что вы можете начать употреблять любой из двух энергетических напитков.

Пример 1:

Ввод: energyDrinkA = [1,3,1], energyDrinkB = [3,1,1]
Вывод: 5
Объяснение:
Чтобы получить повышение энергии на 5, пейте только энергетический напиток А (или только B).

Пример 2:

Ввод: energyDrinkA = [4,1,1], energyDrinkB = [1,1,3]
Вывод: 7
Объяснение:
Чтобы получить повышение энергии на 7:

Выпейте энергетический напиток А в течение первого часа.
Переключимся на энергетический напиток B, и мы потеряем заряд энергии на второй час.
Получите заряд энергии от напитка B на третьем часу.

Ограничения:

n == energyDrinkA.length == energyDrinkB.length
3 <= n <= 10^5
1 <= energyDrinkA[i], energyDrinkB[i] <= 10^5

Вам дан два целочисленных массива energyDrinkA и energyDrinkB одинаковой длины n футуристическим спортивным ученым. Эти массивы представляют собой приливы энергии в час, обеспечиваемые двумя разными энергетическими напитками, A и B соответственно.
Вы хотите максимизировать свой общий прилив энергии, выпивая один энергетический напиток в час. Однако, если вы хотите перейти от употребления одного энергетического напитка к другому, вам нужно подождать один час, чтобы очистить свой организм (то есть вы не получите никакого прилива энергии в этот час).
Верните максимальный общий прилив энергии, который вы можете получить в течение следующих n часов.
Обратите внимание, что вы можете начать употреблять любой из двух энергетических напитков.

Пример 1:

Вход: energyDrinkA = [1,3,1], energyDrinkB = [3,1,1]
Выход: 5
Объяснение:
Чтобы получить прилив энергии на 5, выпейте только энергетический напиток A (или только B).

Пример 2:

Вход: energyDrinkA = [4,1,1], energyDrinkB = [1,1,3]
Выход: 7
Объяснение:
Чтобы получить заряд энергии 7:

Выпейте энергетический напиток A в течение первого часа.
Переключитесь на энергетический напиток B, и мы потеряем заряд энергии второго часа.
Получите заряд энергии напитка B в течение третьего часа.

Ограничения:

n == energyDrinkA.length == energyDrinkB.length
3 <= n <= 10^5
1 <= energyDrinkA[i], energyDrinkB[i] <= 10^5

Даны два целочисленных массива energyDrinkA и energyDrinkB длиной n, предоставленные футуристическим спортивным ученым. Эти массивы представляют собой приливы энергии в час, обеспечиваемые двумя разными энергетическими напитками, A и B соответственно.
Вы хотите максимизировать свой общий прилив энергии, выпивая один энергетический напиток в час. Однако, если вы хотите перейти с одного энергетического напитка на другой, нужно подождать один час для очищения системы (что означает, что вы не получите прилив энергии в этот час).
Верни максимальный общий прилив энергии, который можно получить за следующие n часов.
Начать потребление можно с любого из двух энергетических напитков.

Пример 1:

Ввод: energyDrinkA = [1,3,1], energyDrinkB = [3,1,1]
Вывод: 5
Пояснение:
Чтобы получить прилив энергии, равный 5, пейте только энергетический напиток A (или только B).

Пример 2:

Ввод: energyDrinkA = [4,1,1], energyDrinkB = [1,1,3]
Вывод: 7
Пояснение:
Чтобы получить прилив энергии, равный 7:

Пейте энергетический напиток A в первый час.
Перейдите на энергетический напиток B и потеряйте прилив энергии второго часа.
Получите прилив энергии от напитка B в третий час.

Ограничения:

n == energyDrinkA.length == energyDrinkB.length
3 <= n <= 10^5
1 <= energyDrinkA[i], energyDrinkB[i] <= 10^5


Вам даны два положительных целых числа n и k. Целое число x называется k-палиндромом, если:

x является палиндромом.
x делится на k.

Верните наибольшее целое число с n цифрами (в виде строки), которое является k-палиндромом. Обратите внимание, что число не должно иметь ведущих нулей.

Пример 1:

Вход: n = 3, k = 5
Выход: "595"
Объяснение:
595 — это наибольшее k-палиндромное число с 3 цифрами.

Пример 2:

Вход: n = 1, k = 4
Выход: "8"
Объяснение:
4 и 8 — единственные k-палиндромные числа с 1 цифрой.

Пример 3:

Вход: n = 5, k = 6
Выход: "89898"

Ограничения:

1 <= n <= 10^5
1 <= k <= 9


Вам дан целочисленный массив nums, целое число k и целочисленный множитель.
Вам нужно выполнить k операций над nums. В каждой операции:

Найдите минимальное значение x в nums. Если минимальное значение встречается несколько раз, выберите то, которое появляется первым.
Замените выбранное минимальное значение x на x * множитель.

Верните целочисленный массив, обозначающий конечное состояние nums после выполнения всех k операций.

Пример 1:

Вход: nums = [2,1,3,5,6], k = 5, множитель = 2
Выход: [8,4,6,5,6]
Пояснение:

Операция
Результат

После операции 1
[2, 2, 3, 5, 6]

После операции 2
[4, 2, 3, 5, 6]

После операции 3
[4, 4, 3, 5, 6]

После операции 4
[4, 4, 6, 5, 6]

После операции 5
[8, 4, 6, 5, 6]

Пример 2:

Вход: nums = [1,2], k = 3, множитель = 4
Выход: [16,8]
Объяснение:

Операция
Результат

После операции 1
[4, 2]

После операции 2
[4, 8]

После операции 3
[16, 8]

Ограничения:

1 <= nums.length <= 100
1 <= nums[i] <= 100
1 <= k <= 10
1 <= multiplier <= 5

Вам дан целочисленный массив nums, целое число k и целое число multiplier.
Нужно выполнить k операций над nums. В каждой операции:

Найдите минимальное значение x в nums. Если минимальное значение встречается несколько раз, выберите первое вхождение.
Замените выбранное минимальное значение x на x * multiplier.

Верните целочисленный массив, обозначающий конечное состояние nums после выполнения всех k операций.

Пример 1:

Вход: nums = [2,1,3,5,6], k = 5, multiplier = 2
Выход: [8,4,6,5,6]
Объяснение:

Операция
Результат

После операции 1
[2, 2, 3, 5, 6]

После операции 2
[4, 2, 3, 5, 6]

После операции 3
[4, 4, 3, 5, 6]

После операции 4
[4, 4, 6, 5, 6]

После операции 5
[8, 4, 6, 5, 6]

Пример 2:

Вход: nums = [1,2], k = 3, multiplier = 4
Выход: [16,8]
Объяснение:

Операция
Результат

После операции 1
[4, 2]

После операции 2
[4, 8]

После операции 3
[16, 8]

Ограничения:

1 <= nums.length <= 100
1 <= nums[i] <= 100
1 <= k <= 10
1 <= multiplier <= 5

Вам дан целочисленный массив nums, целое число k и целочисленный множитель.
Вам нужно выполнить k операций над числами. В каждой операции:

Найдите минимальное значение x в nums. Если минимальное значение встречается несколько раз, выберите то, которое появляется первым.
Замените выбранное минимальное значение x множителем x *.

Верните целочисленный массив, обозначающий конечное состояние чисел после выполнения всех k операций.

Пример 1:

Ввод: nums = [2,1,3,5,6], k = 5, multiplier = 2
Вывод: [8,4,6,5,6]
Объяснение:

Операция
Результат

После операции 1
[2, 2, 3, 5, 6]

После операции 2
[4, 2, 3, 5, 6]

После операции 3
[4, 4, 3, 5, 6]

После операции 4
[4, 4, 6, 5, 6]

После операции 5
[8, 4, 6, 5, 6]

Пример 2:

Ввод: nums = [1,2], k = 3, multiplier = 4
Вывод: [16,8]
Объяснение:

Операция
Результат

После операции 1
[4, 2]

После операции 2
[4, 8]

После операции 3
[16, 8]

Ограничения:

1 <= nums.length <= 100
1 <= nums[i] <= 100
1 <= k <= 10
1 <= multiplier <= 5


Дан массив nums, состоящий из положительных целых чисел.

Мы называем два целых числа x и y в этой задаче почти равными, если оба числа могут стать равными после выполнения следующей операции не более одного раза:

Выберите либо x, либо y и поменяйте местами любые две цифры в выбранном числе.

Верните количество индексов i и j в nums, где i < j, таких что nums[i] и nums[j] почти равны. Обратите внимание, что допускается наличие начальных нулей в числе после выполнения операции.

Пример 1:

Input: nums = [3,12,30,17,21]
Output: 2
Объяснение:
Почти равные пары элементов:

3 и 30. Поменяв местами 3 и 0 в 30, получаем 3.
12 и 21. Поменяв местами 1 и 2 в 12, получаем 21.

Пример 2:

Input: nums = [1,1,1,1,1]
Output: 10
Объяснение:
Каждые два элемента в массиве почти равны.

Пример 3:

Input: nums = [123,231]
Output: 0
Объяснение:
Нельзя поменять местами любые две цифры в 123 или 231, чтобы получить другое число.

Ограничения:

2 <= nums.length <= 100
1 <= nums[i] <= 10^6

Вам дан массив nums, состоящий из положительных целых чисел.
В этой задаче мы называем два целых числа x и y почти равными, если оба целых числа могут стать равными после выполнения следующей операции не более одного раза:

Выберите x или y и поменяйте местами любые две цифры в выбранном числе.

Верните количество индексов i и j в nums, где i < j, таких, что nums[i] и nums[j] почти равны.
Обратите внимание, что после выполнения операции допускается наличие у целого числа ведущих нулей.

Пример 1:

Вход: nums = [3,12,30,17,21]
Выход: 2
Пояснение:
Почти равные пары элементов:

3 и 30. Поменяв местами 3 и 0 в 30, вы получите 3.
12 и 21. Поменяв местами 1 и 2 в 12, вы получите 21.

Пример 2:

Вход: nums = [1,1,1,1,1]
Выход: 10
Пояснение:
Каждые два элемента в массиве почти равны.

Пример 3:

Вход: nums = [123,231]
Выход: 0
Пояснение:
Мы не можем поменять местами любые две цифры 123 или 231, чтобы получить другие.

Ограничения:

2 <= nums.length <= 100
1 <= nums[i] <= 10^6

Вам дано множество чисел, состоящее из положительных целых чисел.
Мы называем два целых числа x и y в этом вопросе почти равными, если оба целых числа могут стать равными после осуществления следующего действия не более одного раза:

Выберете x или y и поменяйте местами любые две цифры в выбранном числе.

Верните количество индексов i and j в числах, где i < j таково, что числа[i] и числа[j] являются практически равными.
Учтите, что для целого числа допускается наличие начальных нулей после выполнения действия.

Пример 1:

Input: nums = [3,12,30,17,21]
Output: 2
Explanation:
The almost equal pairs of elements are:

3 and 30. By swapping 3 and 0 in 30, you get 3.
12 and 21. By swapping 1 and 2 in 12, you get 21.

Пример 2:

Input: nums = [1,1,1,1,1]
Output: 10
Explanation:
Every two elements in the array are almost equal.

Пример 3:

Input: nums = [123,231]
Output: 0
Explanation:
We cannot swap any two digits of 123 or 231 to reach the other.

Constraints:

2 <= nums.length <= 100
1 <= nums[i] <= 10^6


Вам даны две строки, coordinate1 и coordinate2, представляющие координаты клетки на шахматной доске размером 8 x 8.
Ниже представлена шахматная доска для справки.

Верните true, если эти две клетки одного цвета, и false в противном случае.
Координаты всегда будут представлять действительную клетку шахматной доски. Координаты всегда будут состоять из буквы сначала (обозначающей столбец), и цифры затем (обозначающей строку).

Пример 1:

Ввод: coordinate1 = "a1", coordinate2 = "c3"
Вывод: true
Объяснение:
Обе клетки черные.

Пример 2:

Ввод: coordinate1 = "a1", coordinate2 = "h3"
Вывод: false
Объяснение:
Клетка "a1" черная, а "h3" белая.

Ограничения:

coordinate1.length == coordinate2.length == 2
'a' <= coordinate1[0], coordinate2[0] <= 'h'
'1' <= coordinate1[1], coordinate2[1] <= '8'

Вам даны две строки, координата 1 и координата 2, представляющие координаты квадрата на шахматной доске 8 x 8.
Ниже приведена шахматная доска для справки.

Возвращает true, если эти два квадрата имеют одинаковый цвет, и false в противном случае.
Координата всегда будет представлять собой действительный квадрат шахматной доски. В координате всегда будет первая буква (обозначающая ее столбец), а цифра вторая (обозначающая ее строку).

Пример 1:

Входные данные: координата1 = "a1", координата2 = "c3"
Вывод: true
Объяснение:
Оба квадрата черные.

Пример 2:

Входные данные: координата1 = "a1", координата2 = "h3"
Вывод: false
Объяснение:
Квадрат «a1» черный, а «h3» белый.

Ограничения целостности:

координата1.длина == координата2.длина == 2
'a' <= координата1[0], координата2[0] <= 'h'
'1' <= координата1[1], координата2[1] <= '8'


На бесконечной 2D плоскости.
Вам дано положительное целое число k. Также вам дан двумерный массив queries, который содержит следующие запросы:

queries[i] = [x, y]: Построить препятствие в точке (x, y) на плоскости. Гарантируется, что в момент запроса в этой точке нет препятствия.

После каждого запроса вам нужно найти расстояние до k-ого ближайшего препятствия от начала координат.
Верните целочисленный массив results, где results[i] обозначает k-ое ближайшее препятствие после запроса i, или results[i] == -1, если препятствий меньше k.
Учтите, что первоначально препятствий нигде нет.
Расстояние от препятствия в точке (x, y) до начала координат задается как |x| + |y|.

Пример 1:

Ввод: queries = [[1,2],[3,4],[2,3],[-3,0]], k = 2
Вывод: [-1,7,5,3]
Пояснение:

Изначально препятствий 0.
После queries[0] препятствий меньше 2.
После queries[1] препятствия на расстояниях 3 и 7.
После queries[2] препятствия на расстояниях 3, 5 и 7.
После queries[3] препятствия на расстояниях 3, 3, 5 и 7.

Пример 2:

Ввод: queries = [[5,5],[4,4],[3,3]], k = 1
Вывод: [10,8,6]
Пояснение:

После queries[0] есть препятствие на расстоянии 10.
После queries[1] препятствия на расстояниях 8 и 10.
После queries[2] препятствия на расстояниях 6, 8 и 10.

Ограничения:

1 <= queries.length <= 2 * 10^5
Все queries[i] уникальны.
-10^9 <= queries[i][0], queries[i][1] <= 10^9
1 <= k <= 10^5

Существует бесконечная 2D-плоскость.
Вам дано положительное целое число k. Вам также дан 2D-массив requests, который содержит следующие запросы:

queries[i] = [x, y]: построить препятствие в точке с координатой (x, y) на плоскости. При выполнении этого запроса гарантируется, что в этой точке нет препятствия.

После каждого запроса вам необходимо найти расстояние до k^th ближайшего препятствия от начала координат.
Верните целочисленный массив results, где results[i] обозначает k^th ближайшее препятствие после запроса i, или results[i] == -1, если препятствий меньше k.
Обратите внимание, что изначально препятствий нет нигде.
Расстояние до препятствия в точке с координатой (x, y) от начала координат определяется как |x| + |y|.

Пример 1:

Вход: queries = [[1,2],[3,4],[2,3],[-3,0]], k = 2
Выход: [-1,7,5,3]
Пояснение:

Изначально препятствий 0.
После запросов[0] препятствий меньше 2.
После запросов[1] есть препятствия на расстоянии 3 и 7.
После запросов[2] есть препятствия на расстоянии 3, 5 и 7.
После запросов[3] есть препятствия на расстоянии 3, 3, 5 и 7.

Пример 2:

Вход: queries = [[5,5],[4,4],[3,3]], k = 1
Выход: [10,8,6]
Пояснение:

После запросов[0] есть препятствие на расстоянии 10.
После запросов[1] есть препятствия на расстоянии 8 и 10.
После запросов[2] есть препятствия на расстоянии 6, 8 и 10.

Ограничения:

1 <= requests.length <= 2 * 10^5
Все queries[i] уникальны.
-10^9 <= queries[i][0], queries[i][1] <= 10^9
1 <= k <= 10^5

Существует бесконечная 2D-плоскость.
Вам дано положительное целое число k. Вам также дан 2D-массив requests, который содержит следующие запросы:

queries[i] = [x, y]: построить препятствие в точке с координатой (x, y) на плоскости. При выполнении этого запроса гарантируется, что в этой точке нет препятствия.

После каждого запроса вам необходимо найти расстояние до k^th ближайшего препятствия от начала координат.
Верните целочисленный массив results, где results[i] обозначает k^th ближайшее препятствие после запроса i, или results[i] == -1, если препятствий меньше k.
Обратите внимание, что изначально препятствий нет нигде.
Расстояние до препятствия в точке с координатой (x, y) от начала координат определяется как |x| + |y|.

Пример 1:

Вход: queries = [[1,2],[3,4],[2,3],[-3,0]], k = 2
Выход: [-1,7,5,3]
Пояснение:

Изначально препятствий 0.
После запросов[0] препятствий меньше 2.
После запросов[1] есть препятствия на расстоянии 3 и 7.
После запросов[2] есть препятствия на расстоянии 3, 5 и 7.
После запросов[3] есть препятствия на расстоянии 3, 3, 5 и 7.

Пример 2:

Вход: queries = [[5,5],[4,4],[3,3]], k = 1
Выход: [10,8,6]
Пояснение:

После запросов[0] есть препятствие на расстоянии 10.
После запросов[1] есть препятствия на расстоянии 8 и 10.
После запросов[2] есть препятствия на расстоянии 6, 8 и 10.

Ограничения:

1 <= queries.length <= 2 * 10^5
Все запросы[i] уникальны.
-10^9 <= queries[i][0], queries[i][1] <= 10^9
1 <= k <= 10^5


Вам дана 2D матричная сетка, состоящая из целых положительных чисел.
Вам необходимо выбрать одну или несколько ячеек из матрицы так, чтобы были выполнены следующие условия:

Никакие две выбранные ячейки не находятся в одной строке матрицы.
Значения в наборе выбранных ячеек уникальны.

Ваш результат будет представлять собой сумму значений выбранных ячеек.
Верните максимальное количество очков, которое вы можете достичь.

Пример 1:

Ввод: grid = [[1,2,3],[4,3,2],[1,1,1]]
Вывод: 8
Объяснение:

Мы можем выбрать ячейки со значениями 1, 3, и 4, которые окрашены выше.

Пример 2:

Ввод: grid = [[8,7,6],[8,3,2]]
Вывод: 15
Объяснение:

Мы можем выбрать ячейки со значениями 7 и 8, которые окрашены выше.

Ограничения:

1 <= grid.length, grid[i].length <= 10
1 <= grid[i][j] <= 100

У вас есть матрица grid размером 2D, состоящая из положительных целых чисел.
Вы должны выбрать одну или несколько ячеек из матрицы, чтобы удовлетворялись следующие условия:

Никакие две выбранные ячейки не находятся в одной строке матрицы.
Значения в наборе выбранных ячеек уникальны.

Ваш результат будет равен сумме значений выбранных ячеек.
Верните максимальный результат, который вы можете получить.

Пример 1:

Вход: grid = [[1,2,3],[4,3,2],[1,1,1]]
Выход: 8
Объяснение:

Мы можем выбрать ячейки со значениями 1, 3 и 4, которые выделены выше.

Пример 2:

Вход: grid = [[8,7,6],[8,3,2]]
Выход: 15
Объяснение:

Мы можем выбрать ячейки со значениями 7 и 8, которые выделены выше.

Ограничения:

1 <= grid.length, grid[i].length <= 10
1 <= grid[i][j] <= 100

Вам дана двумерная сетка матрицы, состоящая из положительных целых чисел.
Вам нужно выбрать одну или несколько ячеек из матрицы так, чтобы были выполнены следующие условия:

Никакие две выбранные ячейки не находятся в одной строке матрицы.
Значения в наборе выбранных ячеек уникальны.

Ваш счет будет суммой значений выбранных ячеек.
Возвращает максимальный счет, который вы можете получить.

Пример 1:

Входные grid = [[1,2,3],[4,3,2],[1,1,1]]
Выходные данные: 8
Пояснение:

Мы можем выбрать ячейки со значениями 1, 3 и 4, которые окрашены выше.

Пример 2:

Входные данные: grid = [[8,7,6],[8,3,2]]
Выходные данные: 15
Пояснение:

Мы можем выбрать ячейки со значениями 7 и 8, которые окрашены выше.

Ограничения:

1 <= grid.length, grid[i].length <= 10
1 <= grid[i][j] <= 100


Вам дан массив nums из n целых чисел и двумерный целочисленный массив requests размера q, где requests[i] = [l_i, r_i].
Для каждого запроса вы должны найти максимальный балл XOR любого подмассива nums[l_i..r_i].
Балл XOR массива a находится путем многократного применения следующих операций к a так, чтобы остался только один элемент, который является баллом:

Одновременно замените a[i] на a[i] XOR a[i + 1] для всех индексов i, кроме последнего.
Удалите последний элемент a.

Верните массив answer размера q, где answer[i] — это ответ на запрос i.

Пример 1:

Входные данные: nums = [2,8,4,32,16,1], queries = [[0,2],[1,4],[0,5]]
Выходные данные: [12,60,60]
Пояснение:
В первом запросе nums[0..2] имеет 6 подмассивов [2], [8], [4], [2, 8], [8, 4] и [2, 8, 4], каждый с соответствующим счетом XOR 2, 8, 4, 10, 12 и 6. Ответ на запрос — 12, самый большой из всех счетов XOR.
Во втором запросе подмассив nums[1..4] с наибольшим счетом XOR — это nums[1..4] со счетом 60.
В третьем запросе подмассив nums[0..5] с наибольшим счетом XOR — это nums[1..4] со счетом 60.

Пример 2:

Входные данные: nums = [0,7,3,2,8,5,1], queries = [[0,3],[1,5],[2,4],[2,6],[5,6]]
Выходные данные: [7,14,11,14,5]
Объяснение:

Индекс
nums[l_i..r_i]
Максимальный счет XOR Подмассива
Максимальный счет XOR Подмассива

0
[0, 7, 3, 2]
[7]
7

1
[7, 3, 2, 8, 5]
[7, 3, 2, 8]
14

2
[3, 2, 8]
[3, 2, 8]
11

3
[3, 2, 8, 5, 1]
[2, 8, 5, 1]
14

4
[5, 1]
[5]
5

Ограничения:

1 <= n == nums.length <= 2000
0 <= nums[i] <= 2^31 - 1
1 <= q == requests.length <= 10^5
queries[i].length == 2
queries[i] = [l_i, r_i]
0 <= l_i <= r_i <= n - 1

Вам дан массив nums n целых чисел и 2D целочисленный массив запросов размера q, где queries[i] = [l_i, r_i].
Для каждого запроса вы должны найти максимальную оценку XOR для любого подмассива nums[l_i.. r_i].
Оценка XOR массива a находится путем многократного применения следующих операций над a таким образом, чтобы остался только один элемент, то есть оценка:

Одновременно замените a[i] на a[i] XOR a[i + 1] для всех индексов i, кроме последнего.
Удалите последний элемент элемента a.

Выведите массив ответов размера q, где answer[i] - ответ на запрос i.

Пример 1:

Input: nums = [2,8,4,32,16,1], queries = [[0,2],[1,4],[0,5]]
Output: [12,60,60]
Объяснение:
В первом запросе nums[0..2] имеет 6 подмассивов [2], [8], [4], [2, 8], [8, 4] и [2, 8, 4], каждый с соответствующей оценкой XOR 2, 8, 4, 10, 12 и 6. Ответ на этот запрос - 12, что является наибольшим показателем из всех оценок XOR.
Во втором запросе подмассив nums[1..4] с наибольшей оценкой XOR - nums[1..4] с оценкой 60.
В третьем запросе подмассив nums[0..5] с наибольшей оценкой XOR - nums[1..4] с оценкой 60.

Пример 2:

Input: nums = [0,7,3,2,8,5,1], queries = [[0,3],[1,5],[2,4],[2,6],[5,6]]
Output: [7,14,11,14,5]
Объяснение:

Index
nums[l_i..r_i]
Maximum XOR Score Subarray
Maximum Subarray XOR Score

0
[0, 7, 3, 2]
[7]
7

1
[7, 3, 2, 8, 5]
[7, 3, 2, 8]
14

2
[3, 2, 8]
[3, 2, 8]
11

3
[3, 2, 8, 5, 1]
[2, 8, 5, 1]
14

4
[5, 1]
[5]
5

Constraints:

1 <= n == nums.length <= 2000
0 <= nums[i] <= 2^31 - 1
1 <= q == queries.length <= 10^5
queries[i].length == 2
queries[i] = [l_i, r_i]
0 <= l_i <= r_i <= n - 1

Вам дан массив nums из n целых чисел и двумерный целочисленный массив requests размера q, где queries[i] = [l_i, r_i].
Для каждого запроса вы должны найти максимальный балл XOR любого подмассива nums[l_i..r_i].
Балл XOR массива a находится путем многократного применения следующих операций к a так, чтобы остался только один элемент, который является баллом:

Одновременно замените a[i] на a[i] XOR a[i + 1] для всех индексов i, кроме последнего.
Удалите последний элемент a.

Верните массив answer размера q, где answer[i] — это ответ на запрос i.

Пример 1:

Входные данные: nums = [2,8,4,32,16,1], queries = [[0,2],[1,4],[0,5]]
Выходные данные: [12,60,60]
Пояснение:
В первом запросе nums[0..2] имеет 6 подмассивов [2], [8], [4], [2, 8], [8, 4] и [2, 8, 4], каждый с соответствующим счетом XOR 2, 8, 4, 10, 12 и 6. Ответ на запрос — 12, самый большой из всех счетов XOR.
Во втором запросе подмассив nums[1..4] с наибольшим счетом XOR — это nums[1..4] со счетом 60.
В третьем запросе подмассив nums[0..5] с наибольшим счетом XOR — это nums[1..4] со счетом 60.

Пример 2:

Входные данные: nums = [0,7,3,2,8,5,1], queries = [[0,3],[1,5],[2,4],[2,6],[5,6]]
Выходные данные: [7,14,11,14,5]
Объяснение:

Индекс
nums[l_i..r_i]
Максимальный счет XOR Подмассива
Максимальный счет XOR Подмассива

0
[0, 7, 3, 2]
[7]
7

1
[7, 3, 2, 8, 5]
[7, 3, 2, 8]
14

2
[3, 2, 8]
[3, 2, 8]
11

3
[3, 2, 8, 5, 1]
[2, 8, 5, 1]
14

4
[5, 1]
[5]
5

Ограничения:

1 <= n == nums.length <= 2000
0 <= nums[i] <= 2^31 - 1
1 <= q == requests.length <= 10^5
queries[i].length == 2
queries[i] = [l_i, r_i]
0 <= l_i <= r_i <= n - 1


Вам предоставляется строковая дата, представляющая дату по григорианскому календарю в формате гггг-мм-дд.
дату можно записать в её двоичном представлении, полученном путём преобразования года, месяца и дня в их двоичные представления без каких-либо ведущих нулей и записи их в формате год-месяц-день.
Верните двоичное представление даты.

Пример 1:

Ввод: date = "2080-02-29"
Вывод: "100000100000-10-11101"
Объяснение:
100000100000, 10, и 11101 это двоичные представления чисел 2080, 02, и 29 соответственно.

Пример 2:

Ввод: date = "1900-01-01"
Вывод: "11101101100-1-1"
Объяснение:
11101101100, 1, и 1 это двоичные представления 1900, 1, и 1 соответственно.

Ограничения:

date.length == 10
date[4] == date[7] == '-', а все остальные date[i] являются цифрами.
Вводные данные формируются таким образом, что дата представляет собой действительную дату по григорианскому календарю между 1 января 1900 года и 31 декабря 2100 года (оба включительно).

Вам дана строка date, представляющая дату по григорианскому календарю в формате гггг-мм-дд.
date можно записать в ее двоичном представлении, полученном путем преобразования года, месяца и дня в их двоичные представления без начальных нулей и записи их в формате год-месяц-день.
Верните двоичное представление даты.

Пример 1:

Вход: date = "2080-02-29"
Выход: "100000100000-10-11101"
Пояснение:
100000100000, 10 и 11101 являются двоичными представлениями 2080, 02 и 29 соответственно.

Пример 2:

Вход: date = "1900-01-01"
Выход: "11101101100-1-1"
Пояснение:
11101101100, 1 и 1 являются двоичными представлениями 1900, 1 и 1 соответственно.

Ограничения:

date.length == 10
date[4] == date[7] == '-', а все остальные date[i] являются цифрами.
Входные данные генерируются таким образом, что date представляет собой допустимую дату григорианского календаря между 1 января 1900 года и 31 декабря 2100 года (оба включительно).