Строки(121 задач)
Целые числа(112 задач)
Битовые операции(28 задач)
Логический тип(3 задач)
Структуры(18 задач)
Вещественные числа(33 задач)
Множества(16 задач)
Словари(21 задач)
Про строку известно, что некоторые её подстроки равны между собой. Восстановите исходную строку.
В первой строке содержатся два натуральных числа \(N\) и \(M\) (1 \(\le\) \(N\), \(M\) \(\le\) \(10^5\)) — длина строки и количество пар подстрок, равенство которых известно.
В следующих \(M\) строках содержатся три натуральных числа \(a_i\), \(b_i\) и \(l_i\) (1 \(\le\) \(a_i\) \(\le\) \(b_i\) \(\le\) \(N\), 1 \(\le\) \(l_i\) \(\le\) \(N\) − \(b_i\) + 1), означающие, что в исходной строке равны подстроки длины \(l_i\), начинающиеся в символах с номерами \(a_i\) и \(b_i\).
Выведите \(N\) строчных латинских букв — любую строку, удовлетворяющую указанным требованиям. Если решения не существует, выведите строку «No solution».
В некогда прославившейся своей политической стабильностью республике Варении прошла череда революций, в результате чего парламент этой страны и система принятия законов в нём приобрели довольно странную форму.
Парламент Варении состоит из нескольких палат, пронумерованных натуральными числами от 1 до \(10^9\) (палаты с некоторыми номерами могут отсутствовать). Принятие законов происходит следующим образом: сначала каждый депутат голосует за или против принимаемого закона, затем считается число \(K\) — количество палат парламента, в которых голосование признано действительным (голосование может быть признано недействительным в том и только том случае, если количество проголосовавших «за» равно количеству проголосовавших «против»). Далее, чтобы принять итоговое решение о принятии закона, применяется новейшая электронная система: она случайным образом выбирает числа \(A\) и \(B\), а затем сравнивает \(A\)/\(K\) и \(B\).
В очередной раз парламенту Варении предстоит решить судьбу нового закона, предложенного премьер-министром. Однако политические взгляды различных ветвей власти Варении практически противоположны, поэтому все депутаты считают принятие этого закона неприемлемым. Но по своему опыту депутаты знают, что даже если они все проголосуют против, система (не без помощи премьер-министра) может подобрать числа \(A\) и \(B\) таким образом, чтобы закон всё равно оказался принят. Поэтому единственный способ отложить принятие нежелательного закона — это вызвать сбой в системе. Для этого достаточно, чтобы во всех палатах был достигнут ничейный результат голосования: тогда K будет равно нулю, система попытается разделить на ноль, и ещё целый месяц лучшие программисты Варении будут восстанавливать работу электронной системы голосования.
Однако может так получиться, что в одной из палат число депутатов нечётно, поэтому ничья в данной палате невозможна. На этот случай депутаты недавно приняли закон, по которому спикер парламента (не принадлежащий ни одной из палат) может отдать свой голос одной из палат. Поэтому вызвать сбой в системе всегда возможно, если существует не более одной палаты с нечётным количеством депутатов.
По информации о составе палат найдите палату, которой спикер должен отдать свой голос (если это необходимо).
В первой строке входного файла содержится единственное целое число N — количество депутатов в парламенте без учёта спикера (1 \(\le\) \(N\) \(\le\) 800000). В следующей строке содержится \(N\) целых чисел \(c_i\) — номер палаты, в состав которой входит депутат с номером \(i\) (1 \(\le\) \(c_i\) \(\le\) \(10^9\)).
Выведите единственное натуральное число — номер палаты, которой спикер должен отдать свой дополнительный голос, или 0, если голос спикера не потребуется.
Гарантируется, что решение существует.
Иван-царевич в глубокой печали: морской царь поручил ему перепахать до утра огромную пустошь на морском дне и засеять рожью. Понятно, что без волшебства тут не справиться! По счастью, дочь морского царя, Василиса Премудрая, предложила Ивану-царевичу свою помощь.
У Василисы в сундуке хранятся грамоты с древними заклинаниями. Она втайне была в учении у самой Бабы-Яги, поэтому знает, что, чтобы творить волшебство, нужно произнести заклинание, да такое, в котором скрыто содержится нужное волшебное слово. Но достаточно ли сильны заклинания, хранящиеся в сундуке?
Вот что Василиса Премудрая узнала от Бабы-Яги:
Вхождение слова в заклинание — это подпоследовательность букв заклинания, совпадающая со словом. Буквы слова могут идти не подряд, но должны быть расположены в том же порядке. К примеру, заклинания «cadabra» и «barabara» содержат слово «abra», а заклинание «raba» — не содержит.
Вхождение называют скрытым, если никакие две его буквы не идут подряд. Например, в заклинание «abuba» слово «aua» входит скрыто, так как буквы вхождения (первая, третья и пятая) идут не подряд, а через одну. В заклинание «bauab» слово «aua», напротив, входит не скрыто.
Силой заклинания относительно волшебного слова считается количество скрытых вхождений в него этого волшебного слова. Например, волшебное слово «az» в заклинание «abazaba» входит два раза, но только один раз — скрыто, поэтому сила его равна единице.
Василиса хочет посчитать силу заклинания, которое она достала из сундука. Да вот беда — заклинание длинное, вхождений много, а ещё нужно отличать скрытые вхождения от не скрытых...
Зная заклинание и волшебное слово, посчитайте силу этого заклинания относительно данного волшебного слова.
В первой строке входного файла задано заклинание. Во второй строке задано волшебное слово. Обе строки не пусты, состоят из маленьких букв латинского алфавита, а длина каждой из них не превосходит 45 символов.
В первой строке выходного файла выведите одно число — силу заклинания относительно данного волшебного слова.
В первом примере волшебное слово «az» входит в заклинание скрыто всего один раз: «a» соответствует первой букве заклинания, а «z» — четвёртой. Другое вхождение волшебного слова, в котором «a» соответствует третьей букве, а «z» — четвёртой, не является скрытым, так как соседние буквы волшебного слова расположены в заклинании рядом.
Во втором примере две буквы «i» могут поместиться, только если они соответствуют четвёртой и шестой буквам заклинания; буква «e», которая должна стоять перед ними, может соответствовать первой или второй букве заклинания.
abazaba az
1
eeeiiieee eii
2
В школе продолжительность каждого урока 45 минут, а перемены между уроками – всего 5 минут. Первый урок начинается ровно в 8 часов утра. Напишите программу, отвечающую на вопрос «во сколько в этой школе заканчивается \(K\)-ый урок?»
Вводится одно натуральное число \(K\), не превышающее 15.
Выведите время окончания \(K\)-ого урока: сначала часы, потом минуты, разделяя их пробелом.
1
8 45
6
12 55
«Нарисуйте» с помощью символов на экране лес. При этом не пользуйтесь командами перемещения курсора по экрану. Ваша программа должна последовательно выводить символы строк (или строки целиком).
Лес — это одна или несколько елочек. Каждая елочка характеризуется количеством треугольников в ней и размером самого маленького треугольника. Елочка состоит из треугольников, у которых вершины находятся строго друг под другом, и каждый следующий треугольник содержит на одну строку больше предыдущего.
Все елочки должны по вертикали начинаться с первой строки. Каждая елочка должна быть расположена как можно левее, при этом елочки не должны соприкасаться (т.е. возле символов елочки справа, слева, снизу, сверху, а также по диагонали не должно быть символов, изображающих другую елочку) и не должен нарушаться порядок следования елочек.
Елочки должны изображаться символами «#» (решеточка), а пустые места между ними — символами «.» (точка). Во всех строках должно быть выведено одинаковое количество символов, при этом обязательно должна быть строка, в которой последним символом является решеточка, в последней строке обязательно должны быть решеточки (т.е. должен быть выведен прямоугольник из точек и решеточек, в нем не должно быть лишних столбцов и строк).
Вводится число елочек \(N\), а дальше \(N\) пар натуральных чисел, описывающих елочки: первое число каждой пары задает количество треугольников в елочке, а второе — размер самого маленького треугольника. Елочки описываются в порядке слева направо (если смотреть на вершины елочек).
Гарантируется, что входные данные будут таковы, что количество символов, которое нужно будет вывести в одной строке, не превысит 79.
Выведите требуемый «рисунок». Для лучшего понимания смотрите примеры.
2 3 2 3 3
...#......#.... ..###....###... ...#....#####.. ..###.....#.... .#####...###... ...#....#####.. ..###..#######. .#####....#.... #######..###... ........#####.. .......#######. ......#########
3 1 1 2 1 3 2
#.#...#... ..#..###.. .###..#... .....###.. ....#####. ......#... .....###.. ....#####. ...#######