Страница: << 27 28 29 30 31 32 33 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Вы, наверное, замечали, что многие компании используют для рекламы «красивые» номера телефонов, которые удобны для запоминания потенциальными клиентами. Но что делать, если номер вашей компании ничем не примечателен? Можно присмотреться к нему повнимательнее, а вдруг, если перегруппировать цифры номера некоторым образом, номер станет намного красивее? Например, если у вашей компании номер 872-73-33, то его можно сделать красивее, если перегруппировать цифры так: 8727-333.

Введем следующую оценку красоты разбиения номера. Будем разбивать номер дефисами на группы размером от 2 до 4 цифр. Теперь красотой разбиения назовем сумму баллов, которые приносит каждая группа. Эти баллы будем считать, пользуясь следующей таблицей.

	 
Шаблон группы          Баллы	 
aa                     2	 
aba                    2	 
aab, abb               2	 
aaa                    3	 
abac, baca             2	 
abab                   3	 
aabb                   3	 
abba                   4	 
baaa, abaa, aaba, aaab 3	 
aaaa                   5

В этой таблице символами «a», «b», «c» обозначены различные цифры. Например под шаблон «aab» подходят группы «223», «667», но не подходят «123» и «888».

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

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

Входной файл содержит одну строку из 7 цифр – заданный телефонный номер.

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

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

Если разбиений с максимальной величиной красоты несколько, выведите в выходной файл любое из этих разбиений.

Примеры
Входные данные
8727333
Выходные данные
8727-333
5
Входные данные
8827291
Выходные данные
88-272-91
4
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

В городском зоопарке содержатся животные n разных видов. Для участия в международной выставке «Три твари» зоопарк должен представить трех животных различных видов. Теперь служителей зоопарка интересует, сколькими способами можно выбрать трех животных для участия в выставке.

Например, если в зоопарке два медведя, тигр, лев и пингвин, то есть семь способов выбрать трех животных:

1) первый медведь, тигр и лев;

2) первый медведь, тигр и пингвин;

3) первый медведь, лев и пингвин;

4) второй медведь, тигр и лев;

5) второй медведь, тигр и пингвин;

6) второй медведь, лев и пингвин;

7) тигр, лев и пингвин.

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

В первой строке входного файла содержится натуральное число \(n\) – количество видов животных в городском зоопарке (1 ≤ \(n\) ≤ \(10^5\)).

В каждой из следующих \(n\) строк содержится одно натуральное число – количество животных соответствующего вида. Общее число животных в зоопарке не превышает \(10^5\).

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

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

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

Даны две последовательности, требуется найти и вывести их наибольшую общую подпоследовательность.

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

В первой строке входных данных содержится число \(N\) – длина первой последовательности (1 ≤ \(N\) ≤ 1000). Во второй строке заданы члены первой последовательности (через пробел) – целые числа, не превосходящие 10000 по модулю.

В третьей строке записано число \(M\) – длина второй последовательности (1 ≤ \(M\) ≤ 1000). В четвертой строке задаются члены второй последовательности (через пробел) – целые числа, не превосходящие 10000 по модулю.

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

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

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

Дана текстовая строка. С ней можно выполнять следующие операции:

1. Заменить один символ строки на другой символ.

2. Удалить один произвольный символ.

3. Вставить произвольный символ в произвольное место строки.

Например, при помощи первой операции из строки "СОК" можно получить строку "СУК", при помощи второй операции - строку "ОК", при помощи третьей операции - строку "СТОК.

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

Определите расстояние Левенштейна для двух данных строк.

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

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

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

Требуется вывести одно число – расстояние Левенштейна для данных строк.

Примеры
Входные данные
ABCDEFGH
ACDEXGIH
Выходные данные
3
ограничение по времени на тест
3.0 second;
ограничение по памяти на тест
64 megabytes

Дана последовательность, требуется найти её наибольшую возрастающую подпоследовательность.

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

В первой строке входных данных задано число \(N\) - длина последовательности (1 ≤ \(N\) ≤ 1000). Во второй строке задается сама последовательность (разделитель - пробел). Элементы последовательности - целые числа, не превосходящие 10000 по модулю.

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

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

Примеры
Входные данные
6
3 29 5 5 28 6
Выходные данные
3 5 28

Страница: << 27 28 29 30 31 32 33 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест