Разбор случаев(6 задач)
    Теория вероятностей(3 задач)
    Конструктив(21 задач)
    Формула(17 задач)
    Комбинаторика(9 задач)
---> 54 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 4 5 6 7 8 9 10 >> Отображать по:
#113527
  
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Вася не только играет в компьютерные и настольные игры, но и решает олимпиадные задачи по программированию. Три года назад он зарегистрировался на одном очень популярном сайте—KodeForces (KF) и с тех пор уже сдал целых 11 задач из архива! Вася не намерен останавливаться на достигнутом и планирует решить еще 1-2 задачи в ближайший месяц - полтора.

Однако сейчас его мозг занят совсем другой проблемой. Раз в год на KF случается чудо — любой пользователь сайта может изменить свой логин (имя пользователя). «Такую возможность упускать нельзя!», — подумал Вася и решил сделать свой логин лаконичным , т.е. состоящим из одинаковых букв.

Однако в этом году все не так то просто... Изменять логин можно только согласно следующему правилу: можно выбрать все одинаковые буквы имени и заменить их все на предыдущую или последующую букву в алфавитном порядке. Например, можно заменить все e на d или f . При этом, z можно заменить на a или y , а a на z или b .

Вася несколько ленив, поэтому, прежде чем начать изменение имени, он хочет посчитать минимальное количество применений описанного выше правила, позволяющее сделать логин лаконичным. Что если это число окажется слишком большим, и он потратит слишком много времени и пропустит очередной рейд в WoW-ке?

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

В первой и единственной строке находится исходный логин Васи—строка из маленьких латинских букв длиной не более 1000 символов.

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

Выведите единственное число—минимальное количество действий, за которое можно сделать логин Васи лаконичным.

Примечание

В первом примере Вася может сначала заменить все буквы a на b , а затем буквы b на c . Т.е.aaac => bbbc => cccc.

Во втором примере Васе необходимо заменить все a на b , а затем изменить букву c на b . Т.е. bbaaaac => bbbbbbc => bbbbbbb.

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

Мирко большой любитель шахмат и программирования, но обычные шахматы уже наскучили ему, поэтому он начал экспериментировать и придумал свою игру. Он взял шахматную доску с N рядами и N столбцами и расположил на ней K ладей. Игра Мирко следует таким правилам: 1. У каждой ладьи есть своя сила, заданная натуральным числом. 2. Ладья видит все клетки поля в своем ряду и своем столбце кроме той, на которой стоит сама. 3. Клетка считается атакованной в том случае, если побитовый XOR сил всех ладей, которые видят эту клетку, положителен. Изначально Мирко некоторым образом расположил ладьи на поле, и теперь собирается сделать P перемещений. Каждый раз он будет брать одну ладью и ставить ее на другую клетку поля (при этом ладья не обязательно будет перемещена вдоль ряда или столбца в котором она стоит). После каждого перемещения, определите сколько клеток на поле атакованы.

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

Первая строка содержит 3 целых числа N , K , P ( 1 ≤ N ≤ 1000000000 , 1 ≤ K , P ≤ 10000 ). Каждая из следующих K строк содержит 3 натуральных числа R i , C i , X i ( 1 ≤ R i , C i N , 1 ≤ X i ≤ 1000000000 ), которые обозначают что на клетке ( R i , C i ) стоит ладья с силой X i . Каждая из следующих P строк содержит 4 натуральных числа R 1 , C 1 , R 2 , C 2 ( 1 ≤ R 1, C 1, R 2, C 2 ≤ N ), которые означают что ладья, стоящая на клетке ( R 1, C 1 ), была передвинута на поле ( R 2, C 2 ). Гарантируется, что в момент перемещения на клетке ( R 1, C 1 ) есть ладья и что ни в какой момент времени на одной клетке нет двух и более ладей.

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

Выведите P строк, где в k -й строке записано единственное число - количество клеток поля, атакованных после первых k перемещений.

Примеры
Входные данные
2 2 2
1 1 1
2 2 1
2 2 2 1
1 1 1 2
Выходные данные
4
0
Входные данные
2 2 2
1 1 1
2 2 2
2 2 2 1
1 1 1 2
Выходные данные
4
2
Входные данные
3 3 4
1 1 1
2 2 2
2 3 3
2 3 3 3
3 3 3 1
1 1 1 2
3 1 3 2
Выходные данные
6
7
7
9
#113560
  
Темы: [Формула]
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Банк страны Олимпия пригласил Петрика проверить новую систему безопасности. Его задача как можно скорее открыть сейф, разгадав такой шифр. Вокруг центрального круга сейфа записано p натуральных чисел. Для того, чтобы открыть сейф, необходимо заменить все числа на другие натуральные таким образом, что каждое число в сумме с q - 1 следующим числами давало бы первоначальное число. Например, если вокруг круга сейфа указано числа 11, 12, 11, 9, 9, 9, 9, и q = 5 , то нужно установить числа 1, 2, 3, 2, 3, 2, 1 и сейф будет открыт!

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

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

В первой строке входного файла находится два натуральных числа p и q соответственно (1 ≤ q p ≤ \(10^4\)) . p и q - простые числа. В следующей строке задано p натуральных чисел, не превышающих \(10^9\) - исходная конфигурация сейфа.

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

В единственной строке выведите p натуральных чисел, не превышают \(10^9\) , которые откроют сейф. Гарантируется, что по крайней мере одна такая конфигурация существует. Если возможных ответов несколько, выведите любой из них.

Примечание

Дополнительно гарантируются следующие условия:

1. 30% тестов: p ≤ 7 , существует ответ, в котором все искомые числа ≤ 7

2. 60% тестов: p ≤ 500 , существует ответ, в котором все искомые числа ≤ 500

Примеры
Входные данные
3 2
7 6 9
Выходные данные
5 2 4 
#113562
  
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Петрик обожает конструкторы. В этот раз он захотел поиграть с набором прямоугольных брусков. Этот набор состоит из n брусков, причем содержит ровно по одному бруску каждого из размеров 1 * 1, 1 * 2, ..., 1 * n. Петрик хочет выбрать некоторые бруски из набора и построить из них пирамидку. Пирамидка состоит из одного или более уровней высотой в один кубик, в каждом уровне бруски расположены горизонтально вплотную друг к другу меньшей стороной, а самый левый брусок в уровне расположен вплотную к стене, и каждый следующий уровень не более длиной, чем предыдущий (считая снизу вверх). При этом Петрик считает, что пирамидка будет более устойчивой, если каждый брусок в каждом уровне, кроме низкого, будет лежать не менее чем на двух брусках с предыдущего уровня. Например, такая конструкция не является пирамидкой, потому что брусок 1 * 2 лежит только на одном бруске: Найдите пирамидку с наибольшим количеством уровней, которую можно построить из некоторых брусков из данного набора с n брусков. Если таких пирамидок несколько, то выведите любую.

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

Одно целое число n ( 1 ≤ n ≤ 10 5 )

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

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

Примеры
Входные данные
5
Выходные данные
2
4 1 3 4 5 
1 2 
#113565
  
Темы: [Формула]
Источники: [ Личные олимпиады, COCI, COCI 2015-2016, Раунд 3, Глупый учитель ]
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Учитель отправил своим ученикам письмо со следующим заданием: "Напишите программу, которая определит значение X по следующему выражению: X = number 1 pot 1 + number 2 pot 2 + ... + number n pot n если известно, что number 1 , number 2 , ... , number n - натуральные числа, а pot 1 , pot 2 , ... , pot n - однозначные натуральные числа."

К сожалению, из-за того что учитель был очень глупый, при записи формулы на компьютер, форматирование текста было потеряно и формула для значения X превратилось в сумму N чисел: X = P 1 + P 2 + ... + P n . Например, без форматирования изначальная формула X =  21 2 + 123 5 превратилась в формулу X =  212 + 1235 . Помогите глупому учителю написать программу, которая по новой формуле (то есть по данным числам P 1 , P 2 , ... , P n ) восстановит изначальное значение X .

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

Первая строка содержит одно целое число N ( 1 ≤ N ≤ 10 ), количество чисел в формуле. Каждая из следующих N строк содержит одно целое число P i ( 10 ≤ P i ≤ 9999 ) - соответствующий элемент формулы.

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

Выведите единственное целое число - изначальное значение X .

Примеры
Входные данные
2
212
1253
Выходные данные
1953566
Входные данные
5
23
17
43
52
22
Выходные данные
102
Входные данные
3
213
102
45
Выходные данные
10385

Страница: << 4 5 6 7 8 9 10 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест