Когнитивные технологии 2023-2024. Третий отбор
A. VK Музыка
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

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

В очередной раз Аня открыла приложение VK Музыка и увидела семь новых плейлистов. У каждого из них был указан процент совместимости с музыкальными вкусами Ани. Аня решила, что послушает только те плейлисты, которые подходят под её вкусы не менее, чем на 90 процентов.

Подскажите Ане, сколько плейлистов она послушает.

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

Входные данные состоят из семи строк. В каждой строке задано единственное целое число от 0 до 100 — совместимость в процентах очередного плейлиста со вкусами Ани.

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

В единственной строке выведите единственное целое число — количество плейлистов, которые послушает Аня.

Пример
Входные данные
90
91
95
47
32
20
19
Выходные данные
3

B. Строка из палиндромов
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

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

Строка является палиндромом, если она читается одинаково как слева направо, так и справа налево. Например, строки «abacaba», «cccc», «z» и «dxd» являются палиндромами, а строки «abab» и «aaabaa» — нет.

Например, пусть $$$s$$$ = «ababcab», $$$n = 7$$$, $$$m = 3$$$. Тогда из ее букв можно составить $$$3$$$ палиндрома:

  • «aba»
  • «bcb»
  • «a»
Входные данные

Первая строка входных данных содержит единственное целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных в тесте.

Далее следуют описания наборов входных данных.

Первая строка описания каждого набора входных данных содержит два целых числа $$$n$$$ и $$$m$$$ ($$$1 \le m \le n \le 2 \cdot 10^5$$$) — длина строки и количество палиндромов, которые необходимо составить из ее символов.

Вторая строка описания каждого набора входных данных содержит строку $$$s$$$ длины $$$n$$$, состоящую из строчных букв латинского алфавита.

Гарантируется, что сумма длин всех строк в тесте не превосходит $$$2 \cdot 10^5$$$.

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

Для каждого набора входных данных в отдельной строке выведите:

  • «YES», если из символов строки возможно составить ровно $$$m$$$ палиндромов так, чтобы каждый символ входил ровно в один палиндром;
  • «NO» иначе.

Вы можете выводить ответ в любом регистре (например, строки «yEs», «yes», «Yes» и «YES» будут распознаны как положительный ответ).

Пример
Входные данные
3
7 3
ababcab
5 2
cabad
6 6
vkvkvk
Выходные данные
YES
NO
YES
Примечание

Первый набор входных данных разобран в условии задачи.

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

C. Судьба
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Эмия Кирицугу потерял своего верного слугу в тяжёлой схватке и сейчас пытается укрыться в семейном поместье Айнцберн. В нём $$$n$$$ комнат, которые соединены $$$m$$$ коридорами.

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

Эмия Кирицугу очень устал, поэтому хочет перевести силы перед битвой с Гильгамешем. Другими словами, он хочет прятаться как можно дольше, поэтому заранее выберет одну из комнат, которую Гильгамеш уничтожит последней.

Помогите Кирицугу определить, какое максимальное количество часов он сможет прятаться от Гильгамеша.

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

В первой строке дано целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.

В первой строке каждого набора даны целые числа $$$n$$$, $$$m$$$ ($$$2 \le n \le 2 \cdot 10^5$$$, $$$1 \le m \le 2 \cdot 10^5$$$) — количество комнат и коридоров соответственно.

В следующих $$$m$$$ строках каждого набора даны целые числа $$$v$$$, $$$u$$$ ($$$1 \le v, u \le n$$$, $$$v \neq u$$$) — комнаты, соединённые соответствующим коридором.

Между одной парой комнат могут быть несколько коридоров. Кроме того, не гарантируется, что существует путь по коридорам между каждой парой комнат.

Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10^5$$$. То же самое гарантируется для $$$m$$$.

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

Для каждого набора входных данных выведите единственное целое число — максимальное количество часов, которое сможет прятаться Эмия Кирицугу.

Пример
Входные данные
2
5 7
3 2
1 4
4 5
4 3
5 2
3 1
2 3
2 1
1 2
Выходные данные
3
1

D. Правильный шестиугольник
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Женя решил подготовить на Новый Год украшения на ёлку. А самое лучшее украшение — это правильный шестиугольник! Поэтому Женя поручил своей младшей сестре Кате сделать несколько правильных шестиугольников.

Работу Женя организовал следующим образом. Сначала Катя на клетчатом листке бумаги рисует шесть точек в узлах сетки так, чтобы получился выпуклый шестиугольник. Затем Женя проверяет, является ли этот шестиугольник правильным. Если шестиугольник правильный, то Катя его вырезает и вешает на ёлку, а иначе Катя выбрасывает этот листок.

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

  1. $$$\frac{\mathrm{SideMax}}{\mathrm{SideMin}} \le \frac{111}{100}$$$, где $$$\mathrm{SideMax}$$$ и $$$\mathrm{SideMin}$$$ — максимальная и минимальная длина стороны многоугольника.
  2. $$$\frac{\mathrm{DiagMax}}{\mathrm{DiagMin}} \le \frac{111}{100}$$$, где $$$\mathrm{DiagMax}$$$ и $$$\mathrm{DiagMin}$$$ — максимальная и минимальная длина диагонали, соединяющей противоположные вершины шестиугольника.
  3. Внутри шестиугольника существует точка $$$O$$$ в узле сетки такая, что $$$\frac{\mathrm{DistMax}}{\mathrm{DistMin}} \le \frac{111}{100}$$$, где $$$\mathrm{DistMax}$$$ и $$$\mathrm{DistMin}$$$ — максимальная и минимальная длина отрезка соединяющего точку $$$O$$$ с вершиной шестиугольника.
Входные данные

В первой строке дано единственное целое число $$$t$$$ ($$$1 \le t \le 1000$$$) — количество шестиугольников, которые сделала Катя.

В следующих строках заданы $$$t$$$ шестиугольников. Входные данные для каждого шестиугольника занимают шесть строк. В шести строках, задающих очередной шестиугольник, даны через пробел по два целых числа $$$X$$$, $$$Y$$$ ($$$0 \le X, Y \le 1000$$$) — координаты очередной вершины шестиугольника.

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

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

В единственной строке выведите единственную строку $$$S$$$ длины $$$t$$$. Еcли $$$i$$$-й шестиугольник является правильным по критерию Жени, то $$$i$$$-й символ строки $$$S$$$ должен быть равен '1', а иначе $$$i$$$-й символ строки $$$S$$$ должен быть равен '0'.

Пример
Входные данные
2
0 3
2 6
6 6
8 3
6 0
2 0
0 1
1 2
2 2
3 1
2 0
1 0
Выходные данные
10

E. Возводи в степень и суммируй!
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Аналитик Жора работает в маленькой компании, где он должен выполнять определенные вычисления. Еще десять лет назад ему выдали массив чисел. После этого каждый день он должен был вычислять сумму чисел на отрезке, концы которого задавали ему утром.

Жора изучал программирование в МИСИС, поэтому без труда написал программу, которая автоматически вычисляет требуемую сумму. Благодаря этому у Жоры была возможность весь день пить чай с печеньем и читать классику мировой литературы.

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

Новость очень шокировала Жору, ведь его привычный уклад жизни был под угрозой. Он сразу понял, что нужно переписать свою программу таким образом, чтобы она выполняла еще и изменения массива. Но за десять лет чтения классической литературы Жора подзабыл основы программирования.

Помогите Жоре написать программу, которая будет вычислять запросы и выполнять изменения в массиве.

Будем считать, что массив Жоры состоит из $$$n$$$ целых положительных чисел $$$a_1, a_2, \ldots, a_n$$$. Запросы, которые необходимо выполнять, бывают трех типов:

  • $$$1$$$ $$$k$$$ — запрос первого типа, в котором необходимо все элементы массива возвести в степень $$$k$$$. Если после выполнения этого запроса хотя бы одно число станет больше, чем $$$10^5$$$, то этот запрос нужно проигнорировать.
  • $$$2$$$ $$$k$$$ — запрос второго типа, в котором необходимо из всех элементов массива извлечь корень степени $$$k$$$. Если после выполнения этого запроса хотя бы одно число перестанет быть целым, то этот запрос нужно проигнорировать.
  • $$$3$$$ $$$l$$$ $$$r$$$ — запрос третьего типа, в котором необходимо вычислить сумму элементов с номерами от $$$l$$$ до $$$r$$$ включительно.
Входные данные

В первой строке задано целое число $$$n$$$ ($$$1 \le n \le 10^5$$$) — количество элементов массива.

Во второй строке через пробел заданы $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \le a_i \le 10^5$$$) — элементы массива.

В третьей строке задано целое число $$$q$$$ ($$$1 \le q \le 10^5$$$) — количество запросов.

В следующих $$$q$$$ строках заданы запросы по одному в строке. Запросы бывают трех видов:

  • $$$1$$$ $$$k$$$ ($$$2 \le k \le 10^5$$$) — запрос первого типа.
  • $$$2$$$ $$$k$$$ ($$$2 \le k \le 10^5$$$) — запрос второго типа.
  • $$$3$$$ $$$l$$$ $$$r$$$ ($$$1 \le l \le r \le n$$$) — запрос третьего типа.
Выходные данные

На каждый запрос третьего типа выведите в отдельной строке ответ на этот запрос.

Примеры
Входные данные
5
1 2 3 4 5
14
3 1 5
1 2
3 1 5
1 2
3 1 5
2 3
3 1 5
2 4
3 1 5
3 1 1
3 2 2
3 3 3
3 4 4
3 5 5
Выходные данные
15
55
979
979
15
1
2
3
4
5
Входные данные
1
12
3
1 6
2 3
3 1 1
Выходные данные
12

F. Метро в Берляндии
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

В Берляндии открылось метро. Жители рады новому виду транспорта, а особенно рад мэр города. Однако всегда есть что улучшить.

Метро представляет собой связный граф с $$$n$$$ вершинами и $$$n-1$$$ ребрами. Мэр хочет улучшить метро, делает он это с помощью приказов. Приказы бывают двух видов:

  • $$$+$$$ $$$v$$$: Построить новую станцию и соединить ее со станцией $$$v$$$. Если номер последней построенной станции был $$$x$$$, то номер новой станции будет $$$x+1$$$
  • $$$-$$$ $$$v$$$: Разрушить станцию $$$v$$$. Гарантируется, что после удаления этой станции, схема метро остается связной, то есть от любой станции можно добраться до любой другой.

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

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

Первая строка содержит число $$$n$$$($$$2 \leq n \leq 10^5$$$) — количество станций метро в изначальной схеме.

Далее идут $$$n-1$$$ строк. В $$$i$$$-й строке содержатся два числа $$$u_i$$$ и $$$v_i$$$($$$1 \leq u, v \leq 10^5$$$) — номера соединённых станций.

На следующей строке дано число $$$q$$$ ($$$1 \leq q \leq 10^5$$$) - количество приказов мэра.

В следующих $$$q$$$ строках даются описания приказов в следующем виде:

  • + $$$v$$$ — построить новую станцию;
  • - $$$v$$$ — разрушить станцию $$$v$$$.

Гарантируется, что $$$v$$$ это номер существующей на данный момент станции.

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

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

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

Пример
Входные данные
5
1 2
1 5
1 4
3 1
6
+ 5
+ 6
- 3
+ 2
- 7
- 6
Выходные данные
7
8
6
7
6
5