---> 1657 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 315 316 317 318 319 320 321 >> Отображать по:
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Одаренный предпринимательским талантом Мистер Картошечка открывает два новых магазина, где, как вы, вероятно, уже догадались, он будет продавать картошечку. Мистер Картошечка получает картошку от N фермеров. Каждый фермер предлагает ровно a i картофелин с мешке общей стоимостью c i . Мистер Картошечка собирается купить по мешку картошки у кадого из фермеров и распределить их в два своих магазина.

Обозначим среднюю цену картошки в магазинах за P 1 и P 2 . Средняя цена равняется отношению суммарной стоимости к количеству картошки в данном магазине. Мистер Картошечка хочет, чтобы значение P 1 · P 2 было минимальным.

Кроме того, хотя бы в одном магазине дожно быть ровно L мешков картошки.

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

В первой строке содержатся два целых числа N и L ( 1 ≤ L < N ≤ 100 ).

Вторая строка содержит N целых чисел a i ( 1 ≤ a i ≤ 100 ), разделенных пробелами.

Третья строка содержит N целых чисел c i ( 1 ≤ c i ≤ 10 6 ), разделенных пробелами.

.

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

Выведите одно вещественное число, округлённое до 3 знаков после запятой – минимальное возможное значение P 1 · P 2 .

Система оценки

30 баллов: N ≤ 20 .

Примеры
Входные данные
3 1
3 2 1
1 2 3
Выходные данные
0.556
Входные данные
3 2
2 2 2
3 3 3
Выходные данные
2.250
ограничение по времени на тест
5.0 second;
ограничение по памяти на тест
512 megabytes

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

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

Формально, если A ( i , j ) - значение в i -й строке и j -м столбце доски, то:

1. A ( i , 1) = i

2. A ( i , j ) = A ( i , j - 1) + rev ( A ( i , j - 1)) , если j > 1 .

rev ( x ) - операция разворота числа в его десятичном представлении. Например, rev (345) = 543 , а rev (1040) = 0401 = 401 .

Затем во сне Аника увидела дружелюбного призрака Бозо, появившегося из-за угла. Он сказал ей: "Аника! Если ты правильно ответишь на мои вопросы, я подарю тебе коробку вкусного печенья. А вопросы мои будут такие: я буду давать тебе по два числа A и B , а ты должна будешь сказать, сколько на доске чисел, лежащих в диапазоне [ A : B ] ".

Аника, хоть она и во сне, очень хочет поесть печенья, поэтому просит вас помочь ответить на вопросы Бозо.

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

Первая строка содержит одно целое число Q ( 1 ≤ Q ≤ 10 5 ) - количество вопросов.

Каждая из последующих Q строк содержит два целых числа A и B ( 1 ≤ A B ≤ 10 10 ) - вопросы Бозо.

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

Выведите Q строк, в каждой одно целое число - ответ на соответствующий вопрос Бозо.

Примечание

Решения, работающие при A , B ≤ 10 6 , будут оцениваться в 50 баллов.

Примеры
Входные данные
2
1 10
5 8
Выходные данные
18
8
Входные данные
3
17 144
121 121
89 98
Выходные данные
265
25
10
Входные данные
1
1 1000000000
Выходные данные
1863025563
#113596
  
ограничение по времени на тест
2.5 second;
ограничение по памяти на тест
256 megabytes

Дан ориентированный граф. Подсчитайте, сколько пар вершин ( i , j ) имеют общего предка. Общим предком вершин i и j называется такая вершину k , что и i , и j достижимы из k .

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

В первой строке входного файла содержатся целые числа 1 ≤ N ≤ 10 4 , 0 ≤ M ≤ 10 4 — количество вершин и рёбер в графе. Далее следуют M строк по два числа от 1 до N . Пара чисел ( a , b ) означает, что из вершины a есть ребро в вершину b .

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

Выведите одно целое число — количество пар.

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

Палиндром - это слово, которое читается справа налево также, как слева направо. Например, "a", "abba", "anavolimilovana" - палиндромы.

Весом строки, состоящей из строчных латинских символов будем называть количество ее подстрок (слов), являющихся палиндромами (при этом каждое вхождение подстроки считается отдельно). Формально, пусть W - строка длины N . Слово w a , b - подстрока W , состоящая из символов на позициях с индексами с a по b включительно. Вес строки W - это количество пар целых чисел a , b ( 1 ≤ a , b N ) таких, что w a , b является палиндромом.

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

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

Первая строка содержит одну строку W ( 1 ≤ | W | ≤ 100000 ), состоящую из строчных латинских символов.

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

Выведите одно целое число - максимально возможный вес.

Примечание

Решения, работающие при | W | ≤ 100 , будут оцениваться в 17 баллов.
Решения, работающие при | W | ≤ 5000 , будут оцениваться еще в 37 баллов.

Примеры
Входные данные
aaaa
Выходные данные
10
Входные данные
baccb
Выходные данные
9
Входные данные
slavko
Выходные данные
7
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Пусть дан строчный латинский символ c . Тогда операция shift ( c ) превращает c в следующий по порядку символ в алфавите. Например, shift (a) = b, shift (e) = f, shift (z) = a.

Дана строка S , состоящая из N строчных латинских символов (индексация с 0). Необходимо обработать Q запросов 2 типов:

"1 i j t": ко всем элементам строки с индексами в отрезке [i:j] применить t раз операцию shift .

"2 i j": найдите количество непустых подмножеств символов строки { c 1 , c 2 , ... , c k }, где i index c 1 < index c 2 < ... < index c k j , таких что символы подмножества, переставленные в некотором порядке, образуют палиндромом. Так как число может быть очень большим, выведите его по модулю 10 9 + 7 .

Два подмножества символов строки называются различными, если множества индексов их элементов различаются.

Строка называется палиндромом, если читается слева направо также, как справа налево.

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

Первая строка содержит два целых числа N и Q ( 1 ≤ N , Q ≤ 10 5 ) - длину строки и количество запросов соответственно. Вторая строка содержит одну строку S длины N , состоящую из строчных латинских символов. Каждая из последующих Q строк содержит запрос в формате, описанном в условии.

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

Для каждого запроса второго типа выведите одно целое число - ответ на данный запрос.

Примечание

Решения, работающие при N ≤ 500 и Q ≤ 500 , будут оцениваться в 20 баллов.

Решения, работающие при условии, что все запросы являются запросами второго типа, оцениваются еще в 30 баллов.

Примеры
Входные данные
3 5
aba
2 0 2
2 0 0
2 1 2
1 0 1 1
2 0 2
Выходные данные
5
1
2
3
Входные данные
5 7
acdec
2 0 3
1 3 4 36
1 2 3 81
1 1 4 11
2 3 3
2 2 3
2 1 2
Выходные данные
4
1
2
2

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