---> 1657 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 276 277 278 279 280 281 282 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Задано подвешенное дерево, содержащее n (1 ≤ n ≤ 100 000) вершин, пронумерованных от 0 до n - 1. Требуется ответить на m (1 ≤ m ≤ 10 000 000) запросов о наименьшем общем предке для пары вершин. Запросы генерируются следующим образом. Заданы числа a1, a2 и числа x, y и z. Числа a3, ..., a2m генерируются следующим образом: ai = . Первый запрос имеет вид {a1, a2}. Если ответ на (i - 1)-й запрос равен v, то i-й запрос имеет вид {, a2i}.

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

Первая строка содержит два числа: n и m. Корень дерева имеет номер 0. Вторая строка содержит n - 1 целых чисел, i-е из этих чисел равно номеру родителя вершины i. Третья строка содержит число содержит два целых числа в диапазоне от 0 до n - 1: a1 и a2. Четвертая строка содержит три целых числа: x, y и z, эти числа неотрицательны и не превосходят 109.

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

Выведите в выходной файл сумму номеров вершин — ответов на все запросы.

Примеры
Входные данные
3 2
0 1
2 1
1 1 0
Выходные данные
2
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
128 megabytes

Последнее время на подъездах в Нижнем Новгороде стало популярно ставить домофоны. Домофон представляет собой цифровую клавиатуру, на которой посетитель должен набрать номер нужной ему квартиры и нажать клавишу вызова, после чего жители этой квартиры могут открыть ему дверь (а могут и не открыть).

При интенсивном использовании домофона краска, нанесённая на цифровые клавиши, постепенно стирается. Одна из компаний, занимающихся установкой домофонов, заинтересовалась возможностью определить диапазон номеров квартир, расположенных в подъезде, по тому, насколько стёрлась краска с клавиш. Они уже обнаружили, что по состоянию клавиши можно определить, сколько раз эту клавишу нажимали. Теперь вам, программисту этой компании, поручили для начала решить простейший вариант задачи восстановления диапазона квартир по «затёртостям». А именно, вашей программе на вход даются 10 чисел — «затёртости» клавиш 0, 1, ..., 9,  т. е. количество раз, которое нажималась соответствующая клавиша. Считая, что за время использования домофона каждую квартиру набрали ровно один раз, и считая, что номера квартир в подъезде начинаются с 1 (т. е. в подъезде расположены квартиры с номерами 1, 2, ..., N при некотором N), определите диапазон квартир в этом подъезде (т. е., фактически, определите это N). Считайте, что посетители никогда не набирают ведущих нулей. Считайте, что N не может превосходить 109.

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

На первой строке входного файла находятся 10 чисел – затёртости цифр 0, 1, ..., 9. Все затёртости не превышают 109; гарантируется, что есть хотя бы одна ненулевая затёртость.

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

В выходной файл выведите одно число N. Если подходящего набора диапазона квартир не существует, выведите одно число  - 1. Если подходящих N существует несколько, выведите любое. Гарантируется, что, если искомое N существует, то оно не превосходит 109.

Примеры
Входные данные
1 2 1 1 1 1 1 1 1 1
Выходные данные
10
Входные данные
2 4 2 2 2 2 2 2 2 2
Выходные данные
-1
Входные данные
1 1 0 0 0 0 0 0 0 0
Выходные данные
-1
Входные данные
1 0 0 0 0 0 0 0 0 0
Выходные данные
-1
Входные данные
162 273 270 263 263 263 263 262 189 162
Выходные данные
826
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
128 megabytes

Найти количество покрытий прямоугольника 2 * n фигурами в виде дощечек, каждая из которых представляет собой либо квадрат со стороной 1, либо два квадрата (2 * 1), либо “уголок” из трех квадратов:

Фигуры должны заполнять прямоугольник без промежутков.

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

Вводится число n(1 ≤ n ≤ 1000).

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

Выведите количество возможных покрытий.

Примеры
Входные данные
2
Выходные данные
11
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Дано два списка чисел, числа в первом списке упорядочены по неубыванию. Для каждого числа из второго списка определите номер первого и последнего появления этого числа в первом списке.

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

В первой строке входных данных записано два числа \(N\) и \(M\) (\(1\le N, M\le 20000\)). Во второй строке записано \(N\) упорядоченных по неубыванию целых чисел — элементы первого списка. В третьей строке записаны \(M\) целых неотрицательных чисел - элементы второго списка. Все числа в списках - целые 32-битные знаковые.

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

Программа должна вывести \(M\) строчек. Для каждого числа из второго списка нужно вывести номер его первого и последнего вхождения в первый список. Нумерация начинается с единицы. Если число не входит в первый список, нужно вывести одно число \(0\).

Примеры
Входные данные
10 5
1 1 3 3 5 7 9 18 18 57
57 3 9 1 179
Выходные данные
10 10
3 4
7 7
1 2
0
ограничение по времени на тест
5.0 second;
ограничение по памяти на тест
128 megabytes

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

В процессе развития сети коды городов регулярно меняются, при этом, коды различных городов обязательно различны. В остальном коды могут быть совершенно произвольными, в том числе код одного города может быть началом кода другого (например, код Нижнего Новгорода — 831, а код Сарова — 83130) и т. п. Если коды нескольких городов являются началом M-значного номера абонента, кодом города этого номера считается наидлиннейший из таких кодов. Так, если есть всего четыре города: Нижний Новгород, Балахна, Дзержинск и Саров с кодами, соответственно, 831, 83144, 8313 и 83130, и M = 9, то: телефоны 831123456 и 831412345 — телефоны Нижнего Новгорода, 831312345 — телефон Дзержинска, 831301234 — Сарова, а 831441234 — Балахны.

В этой задаче мы не будем учитывать различные другие ограничения на телефонные номера, существующие в реальности (например, в реальности никакой номер абонента в городе не может начинаться на 03, т. к. 03 — это телефон скорой помощи). Мы будем считать, что любой из 10M возможных M-значных номеров является допустимым телефонным номером.

Нетривиальной задачей становится задача определения, сколько всего телефонных номеров может быть выдано в каждом городе. Например, в приведённом выше примере в Балахне и Сарове могут быть выданы 10 000 телефонных номеров (все четырёхзначные номера), в Дзержинске могут быть выданы 90000 телефонных номеров — все пятизначные телефонные номера, кроме начинающихся на ноль, а в Нижнем Новгороде могут быть выданы 890 000 номеров — все шестизначные номера, кроме тех, которые начинаются на цифру 3, а также на последовательность 44.

Напишите программу, которая решит эту задачу для произвольного набора кодов городов.

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

На первой строке входного файла находятся два числа N и M — количество городов и длина полного телефонного номера (1 ≤ N ≤ 100 000, 1 ≤ M ≤ 9). Далее следуют N строк, в каждой из которых находится код очередного города и название города, между которыми находится ровно один пробел. Название города состоит только из заглавных и маленьких латинских букв и не превышает по длине 20 символов. Гарантируется, что в каждой из этих строк входного файла будет ровно один пробел — между кодом города и его названием.

Города во входном файле отсортированы по алфавитному порядку кодов. Гарантируется, что никакие два кода и никакие два названия города не совпадают.

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

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

Города можете выводить в произвольном порядке.

Примеры
Входные данные
4 9
831 NizhnyNovgorod
8313 Dzerzhinsk
83130 Sarov
83144 Balakhna
Выходные данные
Sarov 10000
Dzerzhinsk 90000
Balakhna 10000
NizhnyNovgorod 890000

Страница: << 276 277 278 279 280 281 282 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест