---> 121 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 18 19 20 21 22 23 24 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Числа в позиционной троично-симметричной системе счисления записываются с использованием трех символов: +, –, 0. Например, такими числами являются, например,

"+ + 0 – 0", "– – 0 +", "– – –".

Эти числа переводятся в десятичную систему как:

   а) + + 0 – 0 = 1*\(3^4\) + 1*\(3^3\) + 0*\(3^2\) – 1*\(3^1\) + 0*\(3^0\)

   б) – – 0 + = – 1*\(3^3\) – 1*\(3^2\) + 0*\(3^1\) + 1*\(3^0\)

   в) – – – = – 1*\(3^2\) – 1*\(3^1\) – 1*\(3^0\)

Над числами в позиционной троично-симметричной системе счисления можно выполнять два действия: сложение (+) и вычитание (–). Требуется написать программу, которая вычисляет сумму или разность чисел в троично-симметричной системе счисления. Таблица Пифагора для сложения цифр в троично-симметричной системе счисления имеет вид:

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

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

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

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

Примеры
Входные данные
+++0-(+)-0+
Выходные данные
++000
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Для привлечения денег в казну министр финансов Его Величества Бубея Второго решил проводить ежемесячную лотерею. Лотерейный билет представляет собой таблицу \(5 \times 5\) клеток. В каждой клетке записана одна буква (напомним, что в Королевстве используются только заглавные английские буквы). Билет считается выигрышным, если на нем можно прочесть сумму (записанную прописью). Начинать чтение можно с любой клетки, перемещаясь только через стороны клеток. Возвращаться в уже прочитанную клетку – нельзя. На рисунке показан выигрышный билет на 50 монет – fifty.

Однако закон требует, чтобы не менее определенного процента билетов были выигрышными. Чтобы это гарантировать, в типографии по выпуску билетов используется компьютер.

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

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

В первой строке файла input.txt записано слово, состоящее из заглавных английских букв, длина слова не превышает 25 символов. В следующих 5 строках записано по 5 заглавных английских букв.

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

В файл output.txt выведите слово YES, если такое слово можно прочесть в заданной таблице и NO – если нет.

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

В первом примере:

Примеры
Входные данные
THOUSAND
OBUWS
HLOMO
LUSAP
AOHND
ZVTNX
Выходные данные
YES
Входные данные
MILLION
OBUWS
HLIMO
LUSAP
AOHND
ZVTNX
Выходные данные
NO
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Преподаватель: ...- И впишем в сферу икосаэдр...
Студенты: - Чего, чего???
Преподаватель: - Специально для AD&D-шников -
и впишем в сферу D20...


Во многих ролевых играх применяется такой формат описания случайных чисел: \(XdY+Z\). Это означает, что для получения такого случайного числа необходимо подбросить \(X\) игральных костей, по \(Y\) граней на каждой и к результату прибавить фиксированное число \(Z\).

Пример: \(2d6+4\) означает что для получения случайного числа надо взять \(6\)-гранные игральные кости в количестве \(2\) штук и к результату броска прибавить \(4\).

Напишите программу, которая по заданной записи формата \(XdY+Z\) определяет минимальное и максимальное число, которое можно получить по такому правилу.

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

В файле input.txt записано число \(X\) (целое, положительное, не превышает 1000), затем без пробела следует символ ‘d’, за которым также без пробела записано число \(Y\) (целое, положительное, не превышает 1000), затем также без пробела следует один из знаков ‘+’ или ‘-’, после этого знака также без пробела указывается число \(Z\) (целое, неотрицательное, не превышает 1000).

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

В файл output.txt выведите два числа – минимальный и максимальный результат, который можно получить при описанном броске.

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

Комментарий к первому примеру: минимальное число, которое выпадает на 6-гранном кубике равно 1, прибавляя к нему 9 получим минимально возможный результат; максимальное число, которое может выпасть равно 6, прибавим к нему 9 и получим максимальный результат броска

Примеры
Входные данные
1d6+9
Выходные данные
10 15
Входные данные
1d20-10
Выходные данные
-9 10
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

«Знание наперед нельзя получить от богов и демонов,
нельзя получить и путем умозаключений по сходству,
нельзя получить и путем всяких вычислений.
Знание положения противника можно получить
только от людей» (Сунь Цзы, «Искусство войны»)


Для поднятия престижа Короны среди граждан Королевства, Его Величеству Бубею Второму понадобилась небольшая победоносная война. В качестве цели был выбран маленький приграничный город. Королевским шпионам было дано задание узнать численность войск, находящихся в городе. Так как ежедневно пересчитывать всех солдат в целом городе очень сложно, то было решено что такой подсчет будет сделан только один раз. Затем шпионы будут только наблюдать за прибывающими или убывающими из города частями (уже не с точностью до одного человека, а с точностью до войсковой единицы: взвод, рота, полк) и ежедневно докладывать в Столицу.

Однако не все войсковые единицы противника могут состоять из одинакового числа солдат. Поэтому для каждой такой единицы в Военном Министерстве введены специальные поправки.

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

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

В первой строке файла input.txt записано начальное количество солдат (целое, положительное, не превышает 3000). Во второй строке записано число P (целое, положительное, не более 10) – количество названий разных войсковых единиц в армии потенциального противника. Следующие P строк имеют такой формат: <название войсковой единицы><численность><поправка>. Название войсковой единицы – строка, содержащая только заглавные буквы английского алфавита длины не более 10 символов. Численность – целое положительное число не более 10000, поправка – целое положительное число не более 100.

Пример такой строки:

BRIGADE 2000 50 – это означает что в войсковой единице BRIGADE может быть от 1950 до 2050 солдат (поправка действует в обе стороны).

В следующих строках файла указаны данные из донесений шпионов по одному донесению в строке. Формат донесения <знак><название войсковой единицы>, где знак ‘+’ означает что единица вошла в город, ‘-’ – что единица покинула город. Гарантируется, что количество солдат в городе в любой момент времени не превышает \(10^6\).

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

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

В файл output.txt выведите единственное число – максимально возможную численность солдат в городе.

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

Комментарий к первому примеру: было 500 солдат, затем в город вошла BRIGADE численностью от 900 до 1100 (максимально 1100, поэтому прибавляем это число), затем вошла ARMY численностью от 2500 до 3500, а в конце BATTALION (от 450 до 550 человек).

Комментарий ко второму примеру: было 500 солдат, затем BATTALION (от 450 до 550) покинул город. В городе осталось от 0 до 50 солдат, берем максимальное по условию. Затем в город вошло от 450 до 550 солдат).

Примеры
Входные данные
500
3
BATTALION 500 50
BRIGADE 1000 100
ARMY 3000 500
+BRIGADE
+ARMY
+BATTALION
Выходные данные
5650
Входные данные
500
1
BATTALION 500 50
-BATTALION
+BATTALION
Выходные данные
600
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

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

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

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

На обоих дисках (большом и маленьком) буквы расположены в алфавитном порядке по часовой стрелке. Пробел расположен между буквами ‘A’ и ‘Z’. Маленький диск является подвижным и может поворачиваться вокруг своего центра. Шифрование сообщения происходит следующим образом: сначала выбирается начальное положение маленького диска (напротив какой буквы большого диска будет располагаться буква ‘A’ маленького). Затем определяется величина смещения N (целое, по модулю не превышает 26). Если N положительно, то во время шифрования диск будут вращать по часовой стрелке, если отрицательно, то против часовой стрелки на N делений.

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

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

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

В первой строке файла input.txt записан символ, напротив которого находится буква ‘A’ маленького диска при начале шифрования. Во второй строке записано число \(N\), в третьей – исходное сообщение.

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

В файл output.txt выведите зашифрованное сообщение.

Примеры
Входные данные
A
1
AAAA
Выходные данные
ABCD
Входные данные
B
-1
AAAA
Выходные данные
BA Z

Страница: << 18 19 20 21 22 23 24 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест