Темы --> Информатика --> Язык программирования
    Процедуры и функции(96 задач)
    Массивы(232 задач)
    Типы данных(356 задач)
    Циклы(177 задач)
    Условный оператор (if)(164 задач)
    Python(260 задач)
    Standard Template Library(2 задач)
---> 145 задач <---
Страница: << 1 2 3 4 5 6 7 >> Отображать по:

В текстовом редакторе Microsoft Word имеется достаточно мощный механизм поиска и замены, который доступен после установки флажка Подстановочные знаки (Use wildcards). При этом некоторые символы в строке поиска получают особый смысл.

Так, знаком вопроса в шаблоне поиска можно задать ровно один любой символ. Кроме того, в шаблоне поиска на месте одного из символов в квадратных скобках можно перечислить сразу несколько символов, никак их при этом не разделяя (поиск будет считаться успешным, если на этом месте стоит один из символов, указанных в [ ]). В квадратных скобках можно вместо любого символа указывать и диапазоны символов. Мы будем использовать только три следующих диапазона: 0–9, a–z и A–Z (других диапазонов не будет). В этом случае будет искаться один любой символ из указанного диапазона (диапазонов). Если же первый символ в квадратных скобках – “!”, то, наоборот, искаться будет любой символ, из не перечисленных после восклицательного знака в квадратных скобках (например, [!.a-z,] означает один любой символ кроме точки, запятой, и строчных латинских букв). Если же искать надо один из специальных символов !, ?, [, ], (, ), –, \ то, как в квадратных скобках, так и без скобок перед таким символом ставится \.

Еще одно замечательное свойство строки поиска – выражения. Выражением считается часть строки поиска, взятая в круглые скобки. Пар скобок может быть до 9, но вложенность не допускается. В строке замены выражения представляются в виде \n, где n – порядковый номер выражения в шаблоне поиска (от 1 до 9). Например, по шаблону поиска (k)(?)t и шаблону замены t\2\1 произойдут например, следующие замены:
kot -> tok
kit -> tik

Таким образом, в строке замены существует только один специальный символ – \ , после которого обязательно должна идти цифра. Причем, например, цифра 5 может идти только если в строке поиска было не менее пяти выражений в скобках. При этом символы !, ?, [, ], (, ), – в строке замены указываются без предшествующего символа , а символ \ используется только перед цифрой и обозначает номер выражения. В качестве символа, который должен попасть в конечный текст, символ \ в строке замены не может быть использован.

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

Требуется по данному образцу поиска и образцу замены, произвести все замены в заданном тексте.

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

В первой строке входных данных расположен текст, в котором требуется произвести все необходимые замены. Длина текста не превышает 100 символов. Во второй строке записан шаблон для поиска. Шаблон является корректным: каждой открывающей скобке соответствует закрывающая, восклицательный знак как спецсимвол употребляется только сразу за символом [ и т.д. В третьей строке расположен шаблон для замены. Выражения в шаблоне для замены также корректны. Длины шаблонов не превышают 100 символов. Коды всех символов, встречающихся как в тексте, так и в шаблонах находятся в диапазоне от 32 до 126. Символы перевода строки в сами шаблоны и в текст не входят.

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

Выведите одну строку – текст после всех произведенных замен.

Примеры
Входные данные
Nothing is found.
find
replace
Выходные данные
Nothing is found.
Входные данные
To be or not to be?
[A-Za-z][a-z]([!a-z])
be\1
Выходные данные
be be be nbe be be?
Входные данные
To be or not to be?
(?)[a-z](?b)
\2\1
Выходные данные
 bTe or not  bte?
Входные данные
http:\\olympiads.ru
\\\\
//!
Выходные данные
http://!olympiads.ru
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Обувная фабрика собирается начать выпуск элитной модели ботинок. Дырочки для шнуровки будут расположены в два ряда, расстояние между рядами равно a, а расстояние между дырочками в ряду b. Количество дырочек в каждом ряду равно N.

Рис. 1 Шнуровка должна происходить элитным способом «наверх, по горизонтали в другой ряд, наверх, по горизонтали и т.д.» (см. рисунок). Кроме того, чтобы шнурки можно было завязать элитным бантиком, длина свободного конца шнурка должна быть l.

Какова должна быть длина шнурка для этих ботинок?

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

Вводятся четыре натуральных числа a, b, l и N.

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

Ваша программа должна выводить одно число – искомую длину шнурка.

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

Секретное агентство «Super-Secret-no» решило для шифрования переписки своих сотрудников использовать «метод бутерброда». Сначала буквы слова нумеруются в таком порядке: первая буква получает номер 1, последняя буква - номер 2, вторая – номер 3, предпоследняя – номер 4, потом третья … и так для всех букв (см. рисунок). Затем все буквы записываются в шифр в порядке своих номеров. В конец зашифрованного слова добавляется знак «диез» (#), который  нельзя использовать в сообщениях.

Например, слово «sandwich» зашифруется в «shacnidw#».

 Задача С, рис. 3

К сожалению, программист «Super-Secret-no», написал только программу шифрования и уволился. И теперь агенты не могут понять, что же они написали друг другу. Помогите им.

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

Вводится слово, зашифрованное методом бутерброда. Длина слова не превышает 20 букв.

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

Выведите расшифрованное слово.

Примеры
Входные данные
Aabrrbaacda#
Выходные данные
Abracadabra

В Москве установили счетчики системы СтатГрад для учета и контроля над силой града. Каждый счетчик системы учитывает количество попаданий в него градин за сутки. Если в него попадает меньше a градин, то он передает сигнал NO GRAD. Если попадает не меньше a градин, но меньше b градин, то он передает сигнал GRAD. Если больше либо равно b градин – то он ломается, и не передает никакого сигнала.

Даны числа a и b (a < b), а также количество попавших в счетчик градин. Требуется определить, какой сигнал нужно передать.

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

Вводятся три натуральных числа, не превосходящих 1000: a, b и количество градин.

Числа разделены пробелом.

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

Выведите либо NO GRAD, либо GRAD, либо не выводите ничего.

Примеры
Входные данные
10 20 15
Выходные данные
GRAD
Входные данные
10 20 5
Выходные данные
NO GRAD
Входные данные
10 20 30
Выходные данные
#846
  

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

Например, у него могла получиться такая запись:

1:0

1:1

1:2

2:2

2:3

После этого он сложил все записанные числа: 1+0+1+1+1+2+2+2+2+3=15.

По сумме, получившейся у Васи, определите, сколько всего мячей было забито в матче.

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

Вводится одно натуральное число, не превосходящее 1000 – сумма, полученная Васей.

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

Выведите одно число – общее количество забитых мячей.

Примеры
Входные данные
3
Выходные данные
2
Входные данные
1
Выходные данные
1

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