Темы --> Информатика --> Язык программирования
    Процедуры и функции(96 задач)
    Массивы(232 задач)
    Типы данных(356 задач)
    Циклы(177 задач)
    Условный оператор (if)(164 задач)
    Python(260 задач)
    Standard Template Library(2 задач)
---> 952 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 180 181 182 183 184 185 186 >> Отображать по:
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

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

Надпись нанесена таким образом, что:

1. все буквы (даже пробелы) имеют одинаковую ширину (то есть дуги, соответствующие каждому символу одинаковы);

2. надпись охватывает все кольцо, между последним и первым символом нет пробела.

Юля смотрит на кольцо со стороны \(k\)-го символа от начала надписи (символы нумеруются с 1, слева направо).

Определите, какую часть надписи видит Юля.

Вывести следует только символы, видимые целиком.

Символ считается видимым, если угол между его дальней границей и линией взгляда составляет не более 60 градусов.

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

На первой строке вводится число \(k\) (натуральное, не превышает длины надписи). На второй строке - текст надписи (строка, не короче 3 и не длиннее 180 символов, состоящая из заглавных английских букв и пробелов.

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

Требуется вывести строку - часть надписи, которая будет видимой при данном положении кольца.

Примеры
Входные данные
2
ABCD
Выходные данные
B
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

Чтобы прославить свое имя в будущих поколениях, Его Величество Бубей Второй задумал грандиозную реформу календаря для своих подданных. К уже имеющимся в календаре \(X\) месяцам планируется добавить еще один, и назвать его по имени короля. Естественно, новый месяц Его Величество пожелал сделать первым, чтобы с его именем у подданных начинался новый год.

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

До реформы календарь был устроен таким образом: год состоял из \(N\) дней, которые были равномерно (то есть в каждом месяце одинаковое количество дней) разделены на \(X\) месяцев. По счастливой случайности при введении нового месяца также получается равномерное распределение дней (гарантируется в исходных данных).

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

В первой строке файла input.txt записано число \(N\) (целое, положительное, не превышает 30000) – количество дней в году, во второй строке записано число \(X\) – количество месяцев, которое было в календаре до королевской реформы (целое, положительное, не превышает \(N-1\)), в третьей строке записаны два числа – дата по старому календарю (номер дня и номер месяца).

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

В файл output.txt выведите номера дня и месяца, соответствующие указанной старой дате в новом календаре.

Пояснение к примеру

Комментарий к первому примеру: был год в 48 дней, то есть 2 месяца по 24 дня в каждом; 24 день 2-го месяца – это последний день такого года. Когда добавился один месяц – их стало 3, по 16 дней в каждом, то есть последний день года будет 16-м числом 3-го месяца.

Примеры
Входные данные
48
2
24 2
Выходные данные
16 3
Входные данные
48
3
15 1
Выходные данные
3 2
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

Некоторый алгоритм шифрования устроен следующим образом.

Исходная строка разбивается на блоки по 36 символов. Если в конце остается часть, которой недостаточно для полного блока, то она не шифруется.

Шифрование происходит с помощью квадратного трафарета, в котором имеется 9 прорезей для записи символов.

Пример трафарета показан на рисунке.

Каждый блок шифруется в 4 этапа. На первом этапе первые 9 символов записываются в клетки с прорезями с порядке слева направо и сверху вниз.

Например, если в начале блока шло слово «Криптография», то его символы будут расположены вот так:

После этого трафарет поворачивается на месте, на 90 градусов по часовой стрелке и операция повторяется для следующих 9 символов. Затем снова следует поворот, и так далее. В результате шифрования получается таблица \(6 \times 6\) клеток.

Символы из таблицы выписываются в порядке слева направо и сверху вниз - таким образом получается зашифрованный блок.

Затем трафарет возвращается в исходное положение и операция повторяется для остальных блоков.

Гарантируется, что трафарет корректен (то есть в процессе шифрования одного блока над каждой клеткой таблицы прорезь появляется ровно один раз).

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

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

В первой строке находится исходный текст (одна непустая строка длинной не более 200 символов).

В следующих 6 строках описан трафарет в следующем формате: закрытая клетка обозначается символом ‘#’ (решетка), прорезь обозначается символом ‘.’ (точка).

Например, трафарет из условия задачи будет вводиться так:

.#####
#..###
###.##
.###.#
######
#..#.#

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

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

Примеры
Входные данные
ABCDE
.#####
#..###
###.##
.###.#
#####
#..#.#
Выходные данные
ABCDE
ограничение по времени на тест
3.0 second;
ограничение по памяти на тест
256 megabytes

В супермаркете «На троечку» часто происходят распродажи товаров, срок годности которых подходит к концу. Каждый товар привозят в магазин в определенное время, а через некоторое его вывозят из магазина, в связи с окончанием срока годности. Более формально, каждый товар имеет стоимость c i , время его завоза в магазин a i и время его вывоза из магазина b i .

У Иннокентия есть хитрый план похода в магазин. Даже несколько. Каждый план похода в магазин выглядит так: Иннокентий выбирает какое-то время, когда он появится в магазине m j , время s j , которое он проведет в магазине среди огромных стеллажей товаров, и сумму денег k j , которую он рассчитывает потратить. Для каждого плана он хочет узнать, сможет ли он осуществить его, т. е. верно ли, что он сможет во время своего пребывания в магазине купить несколько товаров суммарной стоимостью ровно k j , при этом все выбранные товары должны быть в магазине на протяжении всего пребывания Иннокентия в магазине.

Помогите Иннокентию определить, какие из его планов можно выполнить.

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

В первой строке входных данных содержится число N — общее количество товаров в магазине ( 1 ≤ N ≤ 500 ). Далее содержатся описания товаров, каждый товар описывается тремя целыми числами c i , a i , b i , обозначающими стоимость товара, время его завоза и время его вывоза из магазина ( 1 ≤ c i ≤ 1 000 , 1 ≤ a i < b i ≤ 10 9 ).

Далее содержится число M — количество планов Иннокентия ( 1 ≤ M ≤ 500 000 ). Каждый план описывается тремя целыми числами m j , k j , s j , обозначающими время прихода Иннокентия в магазин, сумму денег, которую он готов потратить в этом плане и длительность его пребывания в магазине ( 1 ≤ m j ≤ 10 9 , 1 ≤ k j ≤ 100 000 , 0 ≤ s j ≤ 10 9 ).

Помните, что это только планы, т. е. ситуация в магазине не меняется вне зависимости от того, может ли Иннокентий осуществить план или нет.

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

Для каждого плана в отдельной строке выведите « YES », если Иннокентий может его осуществить, и « NO » в противном случае.

Примечание

Тесты к этой задаче состоят из четырех групп.

  • Тест 1. Тест из условия, оценивается в ноль баллов.
  • Тесты 2–7. В тестах этой группы M ≤ 10 , a i , b i , m j , s j ≤ 20 000 , k j ≤ 1 000 . Эта группа оценивается в 30 баллов.
  • Тесты 8–11. В тестах этой группы N ≤ 200 , M ≤ 200 , k j ≤ 5 000 . Эта группа оценивается в 30 баллов.
  • Тесты 12–23. В тестах этой группы дополнительные ограничения отсутствуют. Эта группа оценивается в 40 баллов.

Баллы за каждую группу тестов ставятся только при прохождении всех тестов группы.

Примеры
Входные данные
5
6 2 7
5 4 9
1 2 4
2 5 8
1 3 9
5
2 7 1
2 7 2
3 2 0
5 7 2
4 1 5
Выходные данные
YES
NO
YES
YES
NO
#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

Страница: << 180 181 182 183 184 185 186 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест