---> 17 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 1 2 3 4 >> Отображать по:
ограничение по времени на тест
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-ух формах:

- обычной

- экспоненциальной

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

<%0x><обычная форма> - в шестнадцатиричной (состоит из цифр и маленьких латинских букв). Число знаков после "0x" не должно превышать 16.

<%0o><обычная форма> - в восьмеричной. Число знаков после "0o" не должно превышать 8.

<%0b><обычная форма> - в двоичной. Число знаков после "0b" не должно превышать 20.

Знак "-" также может быть только один и должен стоять перед символом "%". Примеры корректных чисел в обычной форме: 75, -%0x6f4,%0b101110,%0o1705.

Число в экспоненциальной форме представляет собой запись следующего вида (необязательные элементы заключены в квадратные скобки):

<число в обычной форме>[<.><неотрицательное число в обычной форме, может содержать ведущие нули, не влияющие на подсчет количества знаков и стоящие до символа "%" если число не в десятичной системе счисления>]<E>[<знак "+" или "-"><число в обычной форме>].

Примеры корректных чисел в экспоненциальной форме: 1.517E+4, -%0b101.00%0xfE–19, -7E.

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

Единственная строка, не содержащая пробелов, длиной не более 50 символов.

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

Выведите "YES", если строка удовлетворяет условию задачи или "NO" в противном случае.

Примеры
Входные данные
74
Выходные данные
YES
Входные данные
%0x5f7.00%0b1011E-%0o71
Выходные данные
YES

Илья уже изучил много видов уравнений. Он знает, что они бывают линейными, квадратными, рациональными и так далее. Теперь Илья хочет поразить воображение одноклассников, написав программу, которая будет по введенному уравнению определять его вид. Однако с программированием у Ильи серьезные проблемы, и он попросил вас написать такую программу.

Илья хочет, чтобы программа поддерживала 3 типа уравнений: квадратные, тригонометрические, логарифмические. Также он решил, что вводимое уравнение всегда будет однотипным, то есть будет содержать элементы только одного типа уравнений. В уравнении должна быть только одна неизвестная переменная - большая или маленькая латинская буква (в условии в качестве переменной возьмем x). Рассмотрим формальное определение уравнения:

<уравнение> ::= <элемент><=><элемент>

Типы элементов:

<линейный элемент> ::= подстрока, содержащая цифры, неизвестную переменную, знаки операций (*,-,+,/,^(возведение в степень)) и круглые скобки.

<квадратный элемент> ::= добавление к линейному элементу конструкций "x^2" и "xx". Вообще несколько подряд идущих x аналогично x^(количество x), то есть xxxx эквивалентно x^4.

<логарифмический элемент> ::= добавление к линейному элементу конструкций "log","ln","exp". Log и ln обозначают натуральный логарифм.

<тригонометрический элемент> ::= добавление к линейному элементу конструкций "sin","cos","tn".

Илья также хочет, чтобы программа проверяла корректность уравнения. Уравнение некорректно если:

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

2. В каких-то числах встречаются ведущие нули.

3. В уравнении встречается несколько неизвестных переменных или неизвестные функции. Уравнение также некорректно, если в нем нет неизвестных переменных.

4. В уравнении встречается деление на 0 (других неверных операций быть не может). Более того, если до совершения арифметических операций, в уравнении деления на 0 не было, а потом оно появилось, то уравнение некорректно. Например, уравнение 2-x=x/(4-2^2) некорректно. Гарантируется, что результат таких промежуточных вычислений всегда помещается в тип int (longint в паскале), а все числа в уравнении не превосходят по модулю 40000. При вычислении синуса, косинуса, тангенса (вычисляются в радианах), логарифма и экспоненты следует брать лишь целую часть результата.

Знак "*" может быть опущен в следующих случаях:

1. Перед открывающей и после закрывающей скобок.

2. После числа, стоящего перед неизвестной переменной.

3. После неизвестной переменной или числа, стоящих перед функцией.

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

Единственная строка, длиной не более 255 символов с кодами от 32 до 127. Считать, что заглавные и прописные латинские буквы одинаковы.

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

Выведите wrong, если уравнение некорректно, в противном случае выведите тип уравнения: square для квадратного, trigonometric для тригонометрического, logarithmic для логарифмического или another, если уравнение не подпадает ни под один из типов.

Примеры тестов

Примеры
Входные данные
x(x+5)(x+1)x(3+7-2^4)2=0
Выходные данные
another
Входные данные
(sin(x))^2+(cos(x))^2=1
Выходные данные
trigonometric

Сегодня в школе Васе рассказывали про числовые промежутки. Каждый из них задаётся парой чисел — своими началом и концом, и информацией о том, включается ли в него каждый из концов. Таким образом, существует четыре типа промежутков:

  • Интервал. Обозначается (x, y), включает в себя все числа z: x < z < y.
  • Полуинервалы. Обозначаются [x, y) и (x, y], включают в себя все такие z, что x ≤ z < y и x < z ≤ y соответственно.
  • Отрезок. Обозначается [x, y] и включает в себя все числа z: x ≤ z ≤ y.
В качестве домашней работы Васе досталось посчитать количество целых чисел в каждом из данных промежутков. Поскольку они ещё не проходили вещественных чисел, \(x\) и \(y\) рациональные: \(x\) = \(a \over b\) , \(y\) = \(c \over d\) (\(a\) и \(c\) целые, \(b\) и \(d\) целые положительные)

Рассмотрим пример: [\(3 \over 2\), 4) В данном случае \(d\) = 1, поэтому вместо \(4 \over 1\) пишут просто 4. В этом множестве содержится два целых числа: 2 и 3, а число 4 не содержится.

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

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

Первым символом идёт открывающаяся квадратная или круглая скобка. Далее записано число x в формате \(a \over b\) либо a, где |a| ≤ 109, 0 < b ≤ 109. После следует запятая и пробел. Потом — число y в таком же формате. Далее — закрывающаяся квадратная или круглая скобка. После неё идёт перевод строки и конец файла.

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

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

По заданному числовому промежутку выведите единственное число — количество целых чисел в нём.

Примеры
Входные данные
[3/2, 4)
Выходные данные
2
Входные данные
[-2/4, 5/3]
Выходные данные
2
Входные данные
[-1000, 1000]
Выходные данные
2001
Входные данные
[-2, 4/3]
Выходные данные
4

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