Пете подарили на день рождения новую карточную игру «Салют». Эта игра предназначена для одного человека. В комплект игры входит колода, состоящая из n карт. На каждой карте написано целое число от 1 до \(m\).
Игра происходит следующим образом. Колода карт перемешивается, и игрок берет в руку верхние \(k\) карт из колоды. В каждый момент времени игрок может держать в руке не более \(k\) карт. Есть три различных вида хода.
Петя подсмотрел, в каком порядке лежат карты в колоде, и теперь хочет сделать ходы так, чтобы максимизировать число выложенных карт. Помогите ему выяснить, какое максимальное число карт ему удастся выложить.
Входной файл содержит несколько тестовых примеров. В первой строке находится целое число T — количество тестовых примеров (\(1 \le T \le 10^5 \)). Следующие \(2T\) строк содержат описание тестовых примеров.
Описание каждого тестового примера состоит из двух строк. В первой строке находятся целые числа \(n\), \(m\) и \(k\) — количество карт в колоде, максимальное число, которое может быть написано на карте, и максимальное количество карт в руке (\(1 \le n, m \le 10^5 , 1 \le k \le n\)).
Во второй строке находятся n целых чисел \(a_i\) — числа, написанные на картах, в том порядке, в котором они лежат в колоде, начиная с самой верхней карты (\(1 \le a_i \le m\)).
Сумма \(n\) во всех тестовых примерах не превосходит \(10^5\) .
Для каждого тестового примера в отдельной строке выведите единственное целое число - максимальное число карт, которое можно выложить.
В третьем примере следует играть следующим образом. Исходно у Пети в руках 4 и 2. Петя сбрасывает 4, берет из колоды 1. Теперь у него в руках 2 и 1. Петя выкладывает 1, затем 2. Теперь у него в руке нет карт. Он берет из колоды 4, затем берет из колоды 3. Теперь у него в руке 4 и 3, он выкладывает 3 и затем выкладывает 4.
3 4 3 1 3 2 1 2 1 2 1 2 5 5 2 4 2 1 4 3
2 0 4
Шахматный аналитик Миша занимается исследованием перемещений произвольных шахматных фигур по доскам произвольного размера. Вот несколько определений из его последней монографии.
Обобщенной шахматной доской \(m \times n\) будем называть прямоугольную доску, которая имеет \(m\) столбцов и \(n\) рядов. Клетка обобщенной доски задается парой целых чисел \((c, r)\), где \(c\) изменяется от 1 до \(m\) и задает номер столбца, а \(r\) от 1 до \(n\) и задает номер ряда.
Обобщенный конь - это вымышленная шахматная фигура, задаваемая конечным множеством возможных ходов, где каждый ход - это пара целых чисел. Если пара \((x, y)\) входит в множество возможных ходов, то своим ходом обобщенный конь может переместиться из клетки с координатами \((c, r)\) в клетку с координатами \((c + x, r + y)\), если эта клетка принадлежит доске. Например, обычный шахматный конь — это не что иное, как обобщенный конь, задаваемый множеством \({(2, 1),(1, 2),(−1, 2),(−2, 1),(−2, −1),(−1, −2),(1, −2),(2, −1)}.\)
Будем говорить, что обобщенный конь прекрасно перемещается по прямоугольной доске \(m \times n\), если из любой клетки этой доски до любой другой он может добраться, не выходя за границы доски. Например, обычный шахматный конь прекрасно перемещается по доске \(8 \times 8\).
Недавно Миша выбрал числа \(a, b, c\) и \(d\) и сформулировал гипотезу: «если обобщенный конь прекрасно перемещается по доске \(a \times b\), то он прекрасно перемещается по доске \(c \times d\)». Помогите определить, верна ли эта гипотеза для заданных \(a, b, c\) и \(d\), и если нет, то приведите пример обобщенного коня, который является для нее контрпримером.
Входной файл содержит одну строку, в которой находятся четыре целых числа \(a, b, c\) и \(d\) (\(1 \le a, b, c, d \le 50\)).
В первой строке выведите «YES», если гипотеза верна, и «NO» иначе.
Если гипотеза не верна, выведите описание обобщенного коня, который является к ней контрпримером. Во второй строке выведите количество ходов, которые может делать этот обобщенный конь, после чего выведите эти ходы, по одному на строке. Если возможных контрпримеров несколько, выведите любой.
Утверждение «любой обобщенный конь, прекрасно перемещающийся по доске \(8 \times 8\), также прекрасно перемещается по доске \(8 \times 2\)» является ложным. Обычный шахматный конь является контрпримером к нему: он прекрасно перемещается по доске \(8 \times 8\), но не может добраться из клетки (1, 1) до клетки (1, 2) на доске \(8 \times 2\).
А утверждение «любой обобщенный конь, прекрасно перемещающийся по доске \(4 \times 4\), также прекрасно перемещается по доске \(8 \times 8\)» является истинным.
8 8 8 2
NO 3 -1 0 0 -1 7 7
4 4 8 8
YES
Соня — одиннадцатиклассница, и в этом году ей надо сдавать единый государственный экзамен по информатике. Она решила начать готовиться заранее и стала решать задачи из вариантов прошлых лет.
В многих заданиях требуется перевести число из одной системы счисления в другую. Соня с легкостью справляется с такими заданиями, но недавно в одном из вариантов ей попалась задача, которая показалась довольно интересной: число \(x\), заданное в десятичной системе счисления, требуется перевести в (−2)-ичную систему счисления.
Формально, записью числа в (−2)-ичной системе счисления называется набор чисел \(a_0, a_1, \dots , a_{n−1}\), каждое из которых равно 0 или 1, причем \(n\) = 1 или \(a_{n−1} \ne 0\) и выполнено равенство:
\(\)x = \sum\limits_{i=0}^{n-1} a_i\cdot (-2)^i\(\)
Например, 3 в (−2)-ичной системе счисления представляется набором (1, 1, 1): действительно, \(1 · (−2)^0 + 1 · (−2)^1 + 1 · (−2)^2 = 1 − 2 + 4 = 3\).
В задаче предлагается перевести в (−2)-ичную систему счисления только одно число, но Соне стало интересно решение этой задачи в общем случае.
После долгих раздумий она обратилась к вам за помощью. Помогите ей перевести заданное число в (−2)-ичную систему счисления.
В единственной строке входного файла записано одно целое число \(x\) — число, которое Соня хочет представить в (−2)-ичной системе
счисления (\(−10^{18} \le x \le 10^{18}\)).
В первой строке выходного файла выведите число \(n\) (\(n \ge 1\)). Во второй строке выходного файла через пробел выведите \(n\) чисел \(a_0, a_1, \dots , a_{n−1}\) — цифры числа \(x\) в (−2)-ичной системе счисления (\(0 \le a_i \le 1\)). Если существует несколько ответов, выведите любой из них.
3
3 1 1 1
-2
2 0 1
После ряда утечек конфиденциальной информации общественность всерьез задумалась о том, какие пароли следует использовать. Например, пароль «11111» — простой и его не следует использовать. Но как определить, хороший ли пароль?
Фондом Стандартизации Бизнес-процессов было проведено исследование, показавшее, что хороший пароль должен быть достаточно длинным и содержать символы разных видов. Исследование показало, что в хорошем пароле должно быть ровно n символов. Пароль должен состоять из заглавных и строчных букв латинского алфавита и цифр и удовлетворять следующим требованиям:
Помогите Фонду, напишите программу, которая по заданным параметрам генерирует подходящий пароль.
В первой строке входного файла задано целое число \(n\) — требуемая длина пароля (\(1 \le n \le 100\)).
Во второй строке заданы неотрицательные целые числа \(a\), \(b\) и \(c\) — минимальное необходимое число заглавных букв, строчных букв и цифр, соответственно (\(a + b + c \le n\)).
В единственной строке выведите любой хороший пароль. Допустимо использовать только заглавные и строчные латинские буквы, а также цифры.
8 2 5 1
ABababa0
В Лайнландии есть одна очень важная дорога, имеющая форму прямой на плоскости. Зимой дорогу часто засыпает снегом, и коммунальные службы стараются оперативно ее очищать.
Лайнландские метеорологи предсказали, что сегодня ночью пройдет снегопад. Они даже в точности смогли описать его ход. Ровно в полночь над страной сформируется облако, из которого будет непрерывно падать снег. Можно считать, что облако представляет собой выпуклый многоугольник, если смотреть на него сверху.
Также метеорологи прогнозируют очень сильный и изменчивый ветер. Благодаря этому ветру траекторией движения облака будет ломаная. Движение облака за ночь можно разбить на несколько участков. Каждый участок задается вектором перемещения облака, во время перемещения вдоль участка облако движется прямолинейно, при этом каждая точка облака перемещается на заданный вектор, облако не меняет форму и не поворачивается.
Каждая точка дороги, над которой пролетит облако, будет покрыта снегом. Коммунальные службы хотят как можно быстрее расчистить дорогу от снега. Для этого они хотят знать общую длину дороги, которая окажется покрыта снегом с утра. Помогите им найти эту величину.
Рисунок показывает перемещения облака и покрытую снегом часть дороги в первом примере.
В первой строке содержится описание дороги. Она задается двумя различными точками, которые на ней лежат. Каждая точка описывается двумя целыми числами \(x, y\) (\(−10^8 \le x, y \le 10^8 \)).
Далее следует описание облака в виде выпуклого многоугольника. В первой строке записано целое число \(n\) — количество вершин многоугольника (\(3 \le n \le 10^5\) ). В следующих \(n\) строках содержится описание положения облака в полночь, каждая строка содержит два целых числа \(x_i\) и \(y_i\) — начальное положение \(i\)-й вершины (\(−10^8 \le x_i , y_i \le 10^8\) ). Вершины заданы в порядке обхода многоугольника против часовой стрелки.
В следующей строке задано целое число \(m\) — количество изменений направления ветра (\(0 \le m \le 10^5\) ). В следующих \(m\) строках записано, как изменилось положение облака в течение очередного участка времени. Каждый участок характеризуется двумя целыми числами \(dx_i\) и \(dy_i\) — на сколько переместилось облако по каждой координате за время \(i\)-го участка (\(−10^3 \le dx_i , dy_i \le 10^3\) ). Гарантируется, что хотя бы одно из этих двух чисел не равно нулю.
Выведите одно вещественное число — общую длину дороги, которая покрыта снегом. Ответ будет считаться верным, если он имеет относительную или абсолютную погрешность не более \(10^{−9}\) .
0 3 1 3 4 -4 2 -5 2 -5 1 -4 1 2 6 3 2 -4
4.5
0 0 1 1 5 1 -2 3 -2 3 -1 2 0 1 -1 4 -1 1 1 1 -7 0 0 -20
5.65685424949238