Темы --> Информатика --> Алгоритмы --> Обработка текста
    Конечные автоматы(10 задач)
    Разбор выражений(17 задач)
---> 31 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 1 2 3 4 5 6 7 >> Отображать по:
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Задано логическое выражение. Необходимо вычислить его значение. В выражении могут встречаться знаки ! (отрицание), & (логическое "и"), | (логическое "или"), ^ (XOR - "исключающее ИЛИ", "ровно одно из двух - истина") и скобки. Самый высокий приоритет у отрицания, меньше - у &, операции | и ^ имеют самый низкий приоритет (одинаковый) и вычисляются слева направо. Все числа в выражении либо 0, либо 1.

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

В первой строке вводится выражение. Его длина не превосходит 100 знаков. После выражения идет переход на новую строчку.

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

Выведите значение этого выражения (0 или 1).

Примеры
Входные данные
1|(0&0^1)
Выходные данные
1
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

В постфиксной записи (или обратной польской записи) операция записывается после двух операндов. Например, сумма двух чисел A и B записывается как A B +. Запись B C + D * обозначает привычное нам (B + C) * D, а запись A B C + D * + означает A + (B + C) * D.

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

Дано выражение в постфиксой записи, содержащее однозначные числа, операции +, –, *. Вычислите значение записанного выражения.

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

В единственной строке записано выражение в постфиксной записи, содержащее однозначные числа и операции +, –, *. Строка содержит не более 100 чисел и операций. Числа и операции отделяются друг от друга ровно одним пробелом.

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

Необходимо вывести значение записанного выражения. Гарантируется, что результат выражения, а также результаты всех промежуточных вычислений по модулю меньше \(2^{31}\).

Примеры
Входные данные
8 9 + 1 7 - *
Выходные данные
-102
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

		Вещественное число задается следующим образом (форма Бэкуса-Наура): 
"Number" ::= ["Sign"] "digit" {"digit"}["Separator" "digit" {"digit"}]["Exponent" ["Sign"] "digit" {"digit"}] 
"digit" ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' 
"Sign" ::= '+' | '-' 
"Separator" ::= '.' 
"Exponent" ::= 'E' | 'e' 

Требуется проверить, является ли вводимая строка корректной записью числа.

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

Вводится одна строка, содержащая не более 200 символов.

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

Необходимо вывести YES или NO в зависимости от того, является ли данная строка записью одного вещественного числа.

Примеры
Входные данные
5.3
Выходные данные
YES
Входные данные
-2.
Выходные данные
NO
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
128 megabytes

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

К сожалению, для полноценного изучения языка недостаточно только одного словаря: кроме англо-латинского необходим латинско-английский. За неимением лучшего он решил сделать второй словарь из первого.

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

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

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

В первой строке содержится единственное целое число N — количество английских слов в словаре. Далее следует N описаний. Каждое описание содержится в отдельной строке, в которой записано сначала английское слово, затем отделённый пробелами дефис (символ номер 45), затем разделённые запятыми с пробелами переводы этого английского слова на латинский. Переводы отсортированы в лексикографическом порядке. Порядок следования английских слов в словаре также лексикографический.

Все слова состоят только из маленьких латинских букв, длина каждого слова не превосходит 15 символов. Общее количество слов на входе не превышает 100 000.

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

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

Примечание

«Лексикографический порядок» означает, что слова идут по алфавиту. Иначе говоря, если у двух слов A и B несколько первых символов совпадают, то раньше идет то, у которого первая буква после общей части идет в алфавите раньше (например, слова solution и solve идут именно в таком порядке, так как первые 3 буквы в этих словах совпадают, а 4-я буква u в слове solution идет по алфавиту раньше буквы v слова solve). Если слово A является началом слова B, то раньше идет слово A (например, сначала идет слово school, а затем слово schoolboy).

Примеры
Входные данные
3
apple - malum, pomum, popula
fruit - baca, bacca, popum
punishment - malum, multa
Выходные данные
7
baca - fruit
bacca - fruit
malum - apple, punishment
multa - punishment
pomum - apple
popula - apple
popum - fruit
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

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

К сожалению, для полноценного изучения языка недостаточно только одного словаря: кроме англо-латинского необходим латинско-английский. За неимением лучшего он решил сделать второй словарь из первого.

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

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

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

В первой строке содержится единственное целое число N (1 ≤ N ≤ 100) — количество английских слов в словаре. Далее следует N описаний. В первой строке каждого описания содержится английское слово. В следующей строке записано единственное число K ≥ 1 — количество переводов. В следующих K строках приведены переводы текущего английского слова на латинский, по одному в каждой строке.

Все слова состоят только из маленьких латинских букв. Общее количество слов на входе не превышает 100. Длина каждого слова не превосходит 15 символов.

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

Выведите соответствующий данному латинско-английский словарь в следующем формате. В первую строку запишите единственное целое число N — количество латинских слов в словаре. Далее выведите N описаний, каждое описание в отдельной строке: сначала латинское слово, затем отделённый пробелами дефис (символ номер 45), затем разделённые запятыми с пробелами переводы этого латинского слова на английский.

При этом порядок английских слов внутри перевода одного латинского может быть каким угодно. Кроме того, порядок следования латинских слов для перевода в словаре также не важен.

Примеры
Входные данные
3
apple
3
malum
pomum
popula
fruit
3
baca
bacca
popum
punishment
2
malum
multa
Выходные данные
7
baca - fruit
bacca - fruit
malum - apple, punishment
multa - punishment
pomum - apple
popula - apple
popum - fruit

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