Темы --> Информатика
    Язык программирования(952 задач)
    Алгоритмы(1657 задач)
    Структуры данных(279 задач)
    Интерактивные задачи(17 задач)
    Другое(54 задач)
---> 2656 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 315 316 317 318 319 320 321 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Развлекательный телеканал транслирует шоу «Колесо Фортуны». В процессе игры участники шоу крутят большое колесо, разделенное на сектора. В каждом секторе этого колеса записано число. После того как колесо останавливается, специальная стрелка указывает на один из секторов. Число в этом секторе определяет выигрыш игрока.

Юный участник шоу заметил, что колесо в процессе вращения замедляется из-за того, что стрелка задевает за выступы на колесе, находящиеся между секторами. Если колесо вращается с угловой скоростью \(v\) градусов в секунду, и стрелка, переходя из сектора \(X\) к следующему сектору, задевает за очередной выступ, то текущая угловая скорость движения колеса уменьшается на \(k\) градусов в секунду. При этом если \(v \le k\), то колесо не может преодолеть препятствие и останавливается. Стрелка в этом случае будет указывать на сектор \(X\).

Юный участник шоу собирается вращать колесо. Зная порядок секторов на колесе, он хочет заставить колесо вращаться с такой начальной скоростью, чтобы после остановки колеса стрелка указала на как можно большее число. Колесо можно вращать в любом направлении и придавать ему начальную угловую скорость от \(a\) до \(b\) градусов в секунду.

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

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

Первая строка входного файла содержит целое число \(n\) — количество секторов колеса (\(3 \le n \le 100\)).

Вторая строка входного файла содержит \(n\) положительных целых чисел, каждое из которых не превышает \(1000\) — числа, записанные в секторах колеса. Числа приведены в порядке следования секторов по часовой стрелке. Изначально стрелка указывает на первое число.

Третья строка содержит три целых числа: \(a\), \(b\) и \(k\) (\(1 \le a \le b \le 10^9\), \(1 \le k \le 10^9\)).

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

В выходном файле должно содержаться одно целое число — максимальный выигрыш.

Примечание

В первом примере возможны следующие варианты: можно придать начальную скорость колесу равную 3 или 4, что приведет к тому, что стрелка преодолеет одну границу между секторами, или придать начальную скорость равную 5, что позволит стрелке преодолеть 2 границы между секторами. В первом варианте, если закрутить колесо в одну сторону, то выигрыш получится равным 2, а если закрутить его в противоположную сторону, то — 5. Во втором варианте, если закрутить колесо в одну сторону, то выигрыш будет равным 3, а если в другую сторону, то — 4.

Во втором примере возможна только одна начальная скорость вращения колеса — 15 градусов в секунду. В этом случае при вращении колеса стрелка преодолеет семь границ между секторами. Тогда если его закрутить в одном направлении, то выигрыш составит 4, а если в противоположном направлении, то — 3.

Наконец, в третьем примере оптимальная начальная скорость вращения колеса равна 2 градусам в секунду. В этом случае стрелка вообще не сможет преодолеть границу между секторами, и выигрыш будет равен 5.

Правильные решения для тестов, в которых \(1 \le a \le b \le 1000\), будут оцениваться из 50 баллов.

Примеры
Входные данные
5
1 2 3 4 5
3 5 2
Выходные данные
5
Входные данные
5
1 2 3 4 5
15 15 2
Выходные данные
4
Входные данные
5
5 4 3 2 1
2 5 2
Выходные данные
5
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Многие системы форматирования текста, например TEX или Wiki, используют для разбиения текста на абзацы пустые строки. Текст представляет собой последовательность слов, разделенных пробелами, символами перевода строк и следующими знаками препинания: «, «, «, «, «, « и «’» (ASCII коды 44, 46, 63, 33, 45, 58, 39). Каждое слово в тексте состоит из заглавных и прописных букв латинского алфавита и цифр. Текст может состоять из нескольких абзацев. В этом случае соседние абзацы разделяются одной или несколькими пустыми строками. Перед первым абзацем и после последнего абзаца также могут идти одна или несколько пустых строк.

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

Требуется написать программу, которая по заданным числам \(w\) и \(b\) и заданному тексту выводит текст, отформатированный описанным выше образом.

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

Первая строка входного файла содержит два целых числа: \(w\) и \(b\) (\(5 \le w \le 100\), \(1 \le b \le 8\), \(b \lt w\)).

Затем следует одна или более строк, содержащих заданный текст. Длина слова в тексте вместе со следующими за ними знаками препинания не превышает \(w\), а длина первого слова любого абзаца вместе со следующими за ним знаками препинания не превышает \((w - b)\).

Название входного файла: formatting.in

Название выходного файла: formatting.out

Размер входного файла не превышает 100 Кбайт. Длина каждой строки во входном файле не превышает 250.

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

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

Примечание

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

Правильные решения для тестов, в которых соседние слова разделены ровно одним пробелом и все знаки препинания следуют сразу за словами и не отделены от них пробелами или символами перевода строк, будут оцениваться из 30 баллов.

Примеры
Входные данные
20 4
Yesterday, 
All my troubles seemed so far away, 
Now it looks as though they're here to stay, 
Oh, I believe in yesterday. 

Suddenly, 
I'm not half the man I used to be, 
There's a shadow hanging over me, 
Oh, yesterday  came suddenly...
Выходные данные
    Yesterday, All
my troubles seemed
so far away, Now it
looks as though
they' re here to
stay, Oh, I believe
in yesterday.
    Suddenly, I' m
not half the man I
used to be, There' s
a shadow hanging
over me, Oh,
yesterday came
suddenly...
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Отделу космических исследований поступило задание сфотографировать из космоса \(n\) объектов в заданной области. Область имеет форму квадрата размером \(50\times 50\) километров. Если разделить ее на квадраты размером \(1\times 1\) километр, то интересующие отдел объекты окажутся в центрах некоторых единичных квадратов.

Введем систему координат, направив ось OX с запада на восток и ось OY с юга на север. Тогда каждому единичному квадрату будут сопоставлены координаты в диапазоне от 1 до 50, как показано на рисунке ниже.

Для космической съемки используется специальный фотоаппарат высокого разрешения, установленный на космическом спутнике. Фотоаппарат может делать снимки квадратных участков земной поверхности размером \(k\times k\) километров. Исходно аппарат наведен на юго-западный угол заданной области, то есть, если сделать снимок, на нем будут видны единичные квадраты с координатами \(x\) и \(y\) от \(1\) до \(k\) километров.

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

Руководство отдела заинтересовалось вопросом: за какое минимальное количество дней можно сделать снимки всех объектов заданной области.

Требуется написать программу, которая по заданному расположению объектов и размеру снимка \(k\) определит минимальное время, за которое можно сделать снимки всех объектов заданной области.

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

Первая строка входного файла содержит два целых числа: \(n\) и \(k\) (\(1 \le n \le 1000\), \(1 \le k \le 5\)).

Следующие \(n\) строк содержат по два целых числа: \(x_i\) и \(y_i\) — координаты объектов в заданной области (\(1 \le x_i, y_i \le 50\)).

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

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

Примечание

В первом примере возможна следующая последовательность действий: сделать снимок, 9 раз сместиться на восток, сместиться на север, сделать снимок, 9 раз сместиться на запад, сместиться на север, сделать снимок, 9 раз сместиться на восток, сместиться на север, сделать снимок. Всего требуется 30 перемещений участка съемки.

Во втором примере объекты расположены там же, но размер снимка больше, поэтому можно действовать так: сделать снимок, сместиться на север, сделать снимок, 8 раз сместиться на восток, сделать снимок, сместиться на север, сделать снимок. Всего требуется лишь 10 перемещений участка съемки.

В третьем примере перемещать участок съемки не требуется, можно просто сделать снимок.

Четвертый пример соответствует приведенному выше рисунку.

Правильные решения для тестов, в которых \(k = 1\), будут оцениваться в 30 баллов.

Правильные решения для тестов, в которых \(k \gt 1\) и \(1 \lt n \le 15\), будут оцениваться так же в 30 баллов.

Примеры
Входные данные
4 1
1 1
10 2
1 3
10 4
Выходные данные
30
Входные данные
4 2
1 1
10 2
1 3
10 4
Выходные данные
10
Входные данные
1 1
1 1
Выходные данные
0
Входные данные
3 3
3 3
3 6
6 3
Выходные данные
7

Дано число. Требуется определить, корректно ли оно. Число может быть записано в 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

Страница: << 315 316 317 318 319 320 321 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест