Перед тем, как задачи Moscow Programming Contest были отправлены в печать, жюри упорядочило задачи по возрастанию сложности, так что эта задача — самая простая, а задача K — самая сложная.
Алиса и Боб — участники одной из команд, прямо сейчас принимающей участие в том же самом контесте, что и вы. Их команда решила все задачи, кроме самой последней. Сейчас третий участник дописывает код последней задачи, Боб решил навести порядок на столе и сложил условия всех задач в стопку. Алиса перебирает стопку и грустно вздыхает каждый раз, когда название задачи начинается с буквы, которая идёт в алфавите раньше, чем буква, с которой начинается название предыдущей задачи.
Подсчитайте, сколько раз Алиса грустно вздохнёт во время просмотра собранной Бобом стопки.
На вход подаётся список названий задач в этом контесте в том порядке, в котором они даны в наборе.
Выведите одно число — количество раз, которое вздохнёт Алиса.
Problem Order
Interactor
Signals in the Space
PalINTdromes
Ugly Polyomino
Robot in the Maze
DHCP Troubles
Array Test
Favorite Points
Thorny Graph
Xor and Segments
3
Ответ к примеру неверен и приведён только для того, чтобы проиллюстрировать формат ввода-вывода.
Лена руководит разработкой тестирующей системы, в которой реализованы интерактивные задачи.
До заверщения очередной стадии проекта осталось написать модуль, определяющий итоговый вердикт системы для интерактивной задачи. Итоговый вердикт определяется из кода завершения задачи, вердикта интерактора и вердикта чекера по следующим правилам:
Ваша задача — реализовать этот модуль.
Входной файл состоит из трёх строк. В первой задано целое число r ( - 128 ≤ r ≤ 127) — код завершения задачи, во второй — целое число i (0 ≤ i ≤ 7) — вердикт интерактора, в третьей — целое число c (0 ≤ c ≤ 7) — вердикт чекера.
Выведите одно целое число от 0 до 7 включительно — итоговый вердикт системы.
0
0
0
0
-1
0
1
3
42
1
6
6
44
7
4
1
1
4
0
3
-3
2
4
2
Межзвёздная автоматическая станция передала на Землю закодированное тестовое сообщение, состоящее из N сигналов — целых неотрицательных чисел, не превосходящих 255 (числа в сообщении могут повторяться). Но из-за ошибки в программе с принимающей стороны числа в сообщении были переставлены, а из-за зашумлённости канала связи некоторые сигналы были распознаны некорректно.
По исходному и принятому сообщениям найдите минимально возможное количество сигналов, которые были распознаны некорректно.
Первая строка входных данных содержит одно целое число N — длину сообщения (1 ≤ N ≤ 1000).
Во второй строке через пробел перечислены N целых неотрицательных чисел, не превосходящих 255 — отправленные станцией сигналы.
В третьей строке через пробел перечислены N целых неотрицательных чисел, не превосходящих 255 — принятые на Земле сигналы.
Выведите одно целое число — наименьшее количество сигналов, которые были распознаны некорректно.
5
1 2 3 4 5
5 2 3 1 4
0
5
1 1 1 1 1
1 2 3 4 5
4
Число является существенно палиндромическим в системе счисления с основанием b ≥ 2, если запись этого числа в соответствующей системе без ведущих нулей состоит более, чем из одной цифры и является палиндромом.
Например, число 5 является существенно палиндромическим в системе счисления с основанием 2 (запись 101 является палиндромом), а числа 1 и 2 — не являются (запись 10 палиндромом не является, а запись числа 1 состоит из одной цифры); число 901684 является существенно палиндромическим в системе счисления с основанием 99 (так как 901684 = 99·99·91 + 99·98 + 91, то число состоит из цифр (91) в первом разряде, (98) во втором и (91) в третьем и тем самым запись является палиндромом).
По заданному числу n требуется найти максимальное целое число b ≥ 2 такое, что в системе счисления с основанием b число n является существенно палиндромическим.
Входные данные содержат одно целое число n (3 ≤ n ≤ 109). Гарантируется, что входные данные подобраны таким образом, что ответ всегда существует.
Выведите максимальное основание b системы счисления, в которой число n является существенно палиндромическим.
3
2
Полимино — это связная фигура из n равных квадратов, соединённых сторонами. Неформально, это связное множество клеток, которое можно вырезать из бесконечного листа клетчатой бумаги. Два полимино считаются совпадающими, если одно из них можно перевести в другое с помощью параллельных переносов, поворотов или отражений относительно прямой, параллельной одной из осей координат (которым параллельны все стороны всех квадратиков). Набор n-полимино считается полным, если никакие два полимино в наборе не являются совпадающими и любое добавленное в набор n-полимино будет совпадать с каким-нибудь из имеющихся.
Например, полный набор 3-полимино состоит из двух фигур,
а полный набор 4-полимино состоит из пяти фигур.
У Алёны есть полный набор n-полимино. Она считает некрасивыми все полимино, содержащие квадрат 2 × 2. По заданному n определите количество некрасивых полимино.
Первая строка входа содержит одно целое число n — параметр набора полимино (3 ≤ n ≤ 7).
Выведите одно целое число — количество некрасивых n-полимино.
3
0
4
1
Так как в квадрате 2 × 2 4 клетки, а в 3-полимино 3 клетки, то ни одно 3-полимино не содержит квадрата 2 × 2.
Единственным 4-полимино, содержащим квадрат 2 × 2, является сам квадрат 2 × 2.
В некоторых комнатах лабиринта n × n расставлены указатели «север», «юг», «запад» и «восток». Остальные комнаты пусты. Робот стартует с некоторого поля и следует по указателям до тех пор, пока не выйдет из лабиринта или не попадёт на поле, в котором нет указателя. Стены в лабиринте отсуствуют, то есть робот может перейти на любое соседнее по стороне поле (или выйти из лабиринта, если он пошёл с края доски в соответствующую сторону).
Требуется выяснить, что произойдёт с роботом: зациклится ли он, покинет ли доску или придёт на какое-то свободное поле доски (в этом случае требуется указать, на какое именно).
Первая строка входных данных содержит одно целое число n, задающее размер лабиринта (1 ≤ n ≤ 100).
Каждая из последующих n строк состоит из n символов, каждый символ описывает одну комнату. Если символ равен 'N', двигаться надо на север, если символ равен 'E' — на восток, если символ равен 'S' — на юг, если символ равен 'W' — на запад, если символ равен '.', то в комнате нет указателя. Первая строка является самой северной, первый столбец — самым западным.
В последней строке содержатся два целых числа R и C (1 ≤ R, C ≤ n) — номер (начиная с единицы) строки и столбца комнаты, из которой стартует робот.
Если робот в результате движения по стрелке выходит из лабиринта, выведите 0, если он зацикливается, выведите - 1, если он останавливается в какой-то комнате внутри лабиринта, выведите два целых числа — номер (начиная с 1) строки и столбца комнаты, в которой остановится робот.
5
NNNNN
WEESE
EN.SE
WNWWE
SSSSS
3 3
3 3
5
NNNNN
WEESE
EN.SE
WNWWE
SSSSS
2 2
-1
5
NNNNN
WEESE
EN.SE
WNWWE
SSSSS
3 1
-1
5
NNNNN
WEESE
EN.SE
WNWWE
SSSSS
1 3
0
...Во время межпланетных сборов программистов в институте Космической Гавани на планете Латакония случилось непредвиденное: в предназначенной для участников сборов подсети обнаружилась нехватка свободных IP-адресов. Прибывший с Земли системный администратор Дмитрий просканировал логи роутера, обнаружил список адресов подключенных устройств и поручил Вам по маске подсети и списку встречающихся в логе подключения адресов выяснить, сколько адресов в данной подсети свободно. Заметим, что роутер обслуживает не только интересующую нас подсеть, а также что один и тот же адрес может упоминаться в логах многократно.
Подсеть задаётся базовым IP-адресом и маской подсети.
Маска подсети записывается через наклонную черту сразу после базового адреса. Например, "129.1.3.17/28". В данном случае маска равна 28, то есть подсеть включает в себя все IP-адреса с фиксированными 28 старшими битами 10000001 00000001 00000011 0001 (то есть адреса от "129.1.3.16" до "129.1.3.31" ).
Первая строка входных данных. задаёт подсеть в формате, описанном в условии задачи. Все числа в IP-адресе и маска подсети не содержат в записи ведущих нулей.
Во второй строке входных данных задано одно целое число N (1 ≤ N ≤ 100) — количество устройств, подключенных к роутеру. Каждая из последующих N строк содержит один IP-адрес, записанный в стандартном формате — упоминание подключенного к роутеру устройства в логе. Гарантируется, что все IP-адреса корректны.
Выведите одно целое число — количество свободных IP-адресов в заданной подсети. В случае, если в логах роутера обнаружены адрес или широковещательный адрес заданной подсети, то в конфигурации системы есть какая-то ошибка и надо вывести - 1.
129.1.3.17/28
2
129.1.3.17
129.1.3.15
13
129.1.3.17/24
4
129.1.3.255
127.0.0.1
129.1.3.18
129.1.3.255
-1
Преподаватель Д. очень любит давать контрольные работы; вот и сегодняшний день не стал исключением. Однако на контрольной Д. дал очень странную задачу, которую Вам и требуется решить...
Напомним несколько классических определений. Пусть дан массив A из n целых чисел [a1, a2, ..., an]. Последовательность [b1, b2, ..., bm] будет называть подмассивом данного массива, если существует такое l, 1 ≤ l ≤ n - m + 1, что al = b1, al + 1 = b2, ..., al + m - 1 = bm.
Разные массивы даже одинаковой длины могут иметь разное количество непустых подмассивов. Например, массив [1, 1, 1] имеет три различных подмассива ([1], [1, 1], [1, 1, 1]), в то время как массив [1, 2, 3] - шесть ([1], [1, 2], [1, 2, 3], [2], [2, 3], [3]).
Массивы можно сравнивать лексикографически. Массив C = [c1, c2, ..., ck] лексикографически меньше массива D = [d1, d2, ..., dl], если выполнено одно из двух условий:
А вот и условие задачи. Пусть дан массив A = [a1, a2, ..., an] и целое положительное число k. Упорядочим все подмассивы А в лексикографическом порядке. Какой подмассив идёт в полученном упорядоченном списке k-м?
В первой строке записаны числа n и k (1 ≤ n ≤ 1 000 000, 1 ≤ k ≤ 30) — длина последовательности. Во второй строке записано n целых чисел, по модулю не превосходящих 106.
Выведите искомый подмассив, либо - 1, если такого подмассива не существует.
5 6
5 4 3 1 2
3 1 2
4 5
3 3 3 3
-1
Преподаватель Д. любит давать контрольные работы. Вот и завтра он очень хочет дать контрольную работу по геометрии.
Для формулировки очередной задачи Д. необходимо задать параллелограмм, ромб, квадрат и трапецию. У Д. есть список из n любимых точек; Д. хочет выбрать каждый из четырехугольников так, чтобы все его вершины были любимыми точками, а четырехугольники - невырожденными. Однако от обилия вариантов разбегались глаза, и было непонятно, с чего начинать выбор. Д., как принято в таких случаях, просит Вас написать программу, которая по списку любимых точек найдет четыре числа — количество способов выбрать параллелограмм, ромб, квадрат и трапецию.
Д. любезно напоминает, что выпуклый четырехугольник ABCD является:
В первой строке записано натуральное число n, 4 ≤ n ≤ 1000 — количество любимых точек Д. . В последующих n строках записано по два целых числа, не превосходящих по модулю 108 — координаты x и y точек. Гарантируется, что все точки попарно различны.
Выведите искомые четыре числа. В точности следуйте формату нижеследующего примера.
4
0 0
0 1
1 0
1 1
Parallelograms: 1
Rhombuses: 1
Squares: 1
Trapezoids: 0
6
0 0
0 1
0 2
1 0
1 1
1 2
Parallelograms: 5
Rhombuses: 2
Squares: 2
Trapezoids: 4
Как гласят старые малоярославские легенды, где-то далеко-далеко, где сборная России когда-то готовилась к международной олимпиаде, в одной из общеобразовательных школ живёт Граф. Ориентированность Графа, как следует из легенд, меняется от дня ко дню вместе с количеством вершин и ребер, что позволяет Графине и её отражению не скучать и играть во множество игр на Графе.
Вот уже многие дни Граф обрёл постоянную ориентированность; однако в последнее время Граф часто стал бывать раздражительным и колючим, и для Графини настали нелёгкие дни. Чтобы хоть как-то облегчить себе жизнь, Графиня решила написать программу, которая по текущему состоянию, то есть набору вершин и рёбер, сообщит Графине, является ли граф колючим. По опыту прошлых дней, Графиня заключила, что Граф является колючим, если и только если через любое его ребро проходит не более чем один простой цикл.
Напомним, что последовательность ребер (u1, u2), (u2, u3), ..., (uk - 1, uk), (uk, u1) является простым циклом, если вершины u1, u2, ..., uk попарно различны. Простой цикл проходит через ребро e, если ребро e содержится в последовательности ребер цикла.
Петлёй в графе называется ребро (u, v), т.ч. u = v.
Рёбра (u1, v1) и (u2, v2) называются кратными, если u1 = u2 и v1 = v2.
Помогите Графине понять, является ли её Граф, являющийся ориентированным графом без петель и кратных ребер, колючим или нет.
В первой строке записаны целые неотрицательные числа n и m (1 ≤ n ≤ 500 000, 0 ≤ m ≤ 106 - количество вершин и рёбер графа-Графа.
Далее в следующих m строках записано по паре целых чисел u, v, 1 ≤ u, v ≤ n, u ≠ v.
Гарантируется, что в Графе не существует петель и кратных ребер.
Выведите слово "YES", если Граф является колючим, и "NO" иначе.
3 3
1 2
2 3
3 1
YES
3 4
1 2
2 3
3 1
1 3
NO
Дан массив a1, a2, ..., an, каждое ai равняется 0 или 1. Напишите программу, которая умеет выполнять две операции:

В первой строке записаны числа n и q (1 ≤ n, q ≤ 250 000).
Во второй строке записаны n чисел a1, a2, ..., an, каждое из этих чисел равно 0 или 1.
В следующих q строках расположены параметры запросов. В i-й из этих строк записаны параметры i-го запроса — числа ti, li и ri, где ti равно 1 для запроса первого типа (замена чисел в массиве) и 2 для запроса второго типа (нахождение суммы), а li и ri, 1 ≤ li ≤ ri ≤ n есть параметры соответствующего запроса.
Для каждого запроса второго типа выведите в отдельной строке единственное число — ответ на соответствующий запрос.
5 10
0 0 0 0 0
1 2 4
2 2 2
2 1 1
2 1 2
2 2 3
1 3 5
2 2 2
2 3 3
2 2 4
2 1 5
0
1
1
1
1
1
1
1