Массивы(232 задач)
Типы данных(356 задач)
Циклы(177 задач)
Условный оператор (if)(164 задач)
Python(260 задач)
Standard Template Library(2 задач)
Про строку известно, что некоторые её подстроки равны между собой. Восстановите исходную строку.
В первой строке содержатся два натуральных числа \(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, если голос спикера не потребуется.
Гарантируется, что решение существует.
Енот Вася — начинающий художник. Недавно он приобрёл подержанную кисточку (как рассказал продавец, она сделана из хвоста самого Малевича!), достал холст и решил произвести на свет свой первый шедевр.
Как оказалось, лет кисточке немало, потому она способна лишь ставить кляксы в форме пяти квадратиков, расположенных крестиком (координаты их центров будут равны (\(x\), \(y\)), (\(x\)−1, \(y\)), (\(x\), \(y\)−1), (\(x\)+1, \(y\)), (\(x\), \(y\)+1)). Вася поставил \(N\) клякс, разочаровался в идее первого шедевра и задумался о месте для нового. Но ведь если он закрасил весь холст, писать будет негде...
Выясните, закрасил ли своими действиями Вася весь холст.
Первая строка входного файла содержит три целых числа \(W\), \(H\) и \(N\) — ширину и высоту холста в квадратиках (1 \(\le\) \(W\), \(H\) \(\le\) \(10^9\)) и количество клякс, поставленных Васей (0 \(\le\) \(N\) \(\le\) \(10^6\)). Следующие \(N\) строк содержат по два целых числа \(x_i\), \(y_i\) каждая — координаты среднего квадратика \(i\)-й кляксы (−\(10^9\) \(\le\) \(x_i\), \(y_i\) \(\le\) \(10^9\)). Клетка (\(x\), \(y\)) находится на холсте, если 1 \(\le\) \(x\) \(\le\) \(W\) и 1 \(\le\) \(y\) \(\le\) \(H\). Части клякс, оказавшиеся вне холста, не учитываются.
Выведите «Yes», если Вася закрасил весь холст, и «No» в противном случае.
Иван-царевич в глубокой печали: морской царь поручил ему перепахать до утра огромную пустошь на морском дне и засеять рожью. Понятно, что без волшебства тут не справиться! По счастью, дочь морского царя, Василиса Премудрая, предложила Ивану-царевичу свою помощь.
У Василисы в сундуке хранятся грамоты с древними заклинаниями. Она втайне была в учении у самой Бабы-Яги, поэтому знает, что, чтобы творить волшебство, нужно произнести заклинание, да такое, в котором скрыто содержится нужное волшебное слово. Но достаточно ли сильны заклинания, хранящиеся в сундуке?
Вот что Василиса Премудрая узнала от Бабы-Яги:
Вхождение слова в заклинание — это подпоследовательность букв заклинания, совпадающая со словом. Буквы слова могут идти не подряд, но должны быть расположены в том же порядке. К примеру, заклинания «cadabra» и «barabara» содержат слово «abra», а заклинание «raba» — не содержит.
Вхождение называют скрытым, если никакие две его буквы не идут подряд. Например, в заклинание «abuba» слово «aua» входит скрыто, так как буквы вхождения (первая, третья и пятая) идут не подряд, а через одну. В заклинание «bauab» слово «aua», напротив, входит не скрыто.
Силой заклинания относительно волшебного слова считается количество скрытых вхождений в него этого волшебного слова. Например, волшебное слово «az» в заклинание «abazaba» входит два раза, но только один раз — скрыто, поэтому сила его равна единице.
Василиса хочет посчитать силу заклинания, которое она достала из сундука. Да вот беда — заклинание длинное, вхождений много, а ещё нужно отличать скрытые вхождения от не скрытых...
Зная заклинание и волшебное слово, посчитайте силу этого заклинания относительно данного волшебного слова.
В первой строке входного файла задано заклинание. Во второй строке задано волшебное слово. Обе строки не пусты, состоят из маленьких букв латинского алфавита, а длина каждой из них не превосходит 45 символов.
В первой строке выходного файла выведите одно число — силу заклинания относительно данного волшебного слова.
В первом примере волшебное слово «az» входит в заклинание скрыто всего один раз: «a» соответствует первой букве заклинания, а «z» — четвёртой. Другое вхождение волшебного слова, в котором «a» соответствует третьей букве, а «z» — четвёртой, не является скрытым, так как соседние буквы волшебного слова расположены в заклинании рядом.
Во втором примере две буквы «i» могут поместиться, только если они соответствуют четвёртой и шестой буквам заклинания; буква «e», которая должна стоять перед ними, может соответствовать первой или второй букве заклинания.
abazaba az
1
eeeiiieee eii
2
Опишите на русском языке или на одном из языков программирования алгоритм подсчёта суммы всех отрицательных элементов заданного целочисленного массива размером 30 элементов. Если отрицательных элементов нет, выведите NO.
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-15