Информатика

15 724 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Дано N предметов массой m1, …, mN и стоимостью c1, …, cN соответственно.

Ими наполняют рюкзак, который выдерживает вес не более M. Какую наибольшую стоимость могут иметь предметы в рюкзаке?

Входные данные
В первой строке вводится натуральное число N, не превышающее 100 и натуральное число M, не превышающее 10000. Во второй строке вводятся N натуральных чисел mi, не превышающих 100. Во третьей строке вводятся N натуральных чисел сi, не превышающих 100.

Выходные данные
Выведите наибольшую стоимость рюкзака.
У Магистра Максимуса в руках три артефакта с последовательностями символов. Чтобы раскрыть их тайны, нужно открыть все три артефакта одновременно с помощью одинаковых последовательностей символов. Для этого Максимус может удалять только самый правый символ из каждой последовательности сколько угодно раз. Обратите внимание, что для того, чтобы Максимус мог удалить символ из последовательности, ее длина должна быть не менее двух символов. 
Определите минимальное количество операций, которые необходимо выполнить Максимусу, чтобы привести три последовательности к одинаковому виду. Если такое невозможно, ответ должен быть -1.

Входные данные
Программа получает на вход три строки s1, s2, s3 - последовательности символов, записанные на каждом из артефактов. 
 

Constraints:

  • 1 <= |s1|, |s2|, |s3| <= 100
  • s1s2 и s3 состоят только из строчных английских букв
|s|  означает длину последовательности s

Выходные данные
Выведите ответ на задачу.
 
✓ 56✗ 209600лёгкаяВойти и решать
Цикл лекций в университете Флатландии посвящен изучению последовательностей.

Профессор называет последовательность целых чисел \(a_1, a_2, ..., a_n\) гармоничной, если каждое число, кроме \(a_1\) и \(a_n\), равно сумме соседних: \(a_2 = a_1 + a_3, a_3=a_2+a_4, ..., a_{n-1}=a_{n-2}+a_n\). Например, последовательность [1,2,1,–1]  является гармоничной, поскольку 2=1+1, и 1=2+(–1) .

Рассмотрим последовательности равной длины: \(A=[a_1,a_2, ... a_n]\)   и \(B=[b_1,b_2, ... b_n]\). Расстоянием между этими последовательностями будем называть величину \(d(A,B)= |a_1-b_1|+|a_2-b_2|+...+|a_n-b_n|\) . Например, \(d([1,2,1,–1][1,2,0,0])=|1–1|+|2–2|++|1–0|+|–1–0|=0+0+1+1=2 \)

В конце лекции профессор написал на доске последовательность из n целых чисел \(B=[b_1,b_2, ... b_n]\)и попросил студентов в качестве домашнего задания найти гармоничную последовательность \(A=[a_1,a_2, ... a_n]\), такую, что \(d(A, B)\) минимально. Чтобы облегчить себе проверку, профессор просит написать в качестве ответа только искомое минимальное расстояние \(d(A,B)\) .

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

Входные данные
Первая строка содержит целое число n – количество элементов в последовательности ( \(3 \le n \le 500\)).
Вторая строка содержит n целых чисел \(b_1, b_2, …, b_n (–100 \le b_i \le 100 )\) .

Выходные данные
Выведите одно целое число: минимальное возможное расстояние от исходной до гармоничной последовательности.
 
Примеры
Входные данные Выходные данные
1 4
1 2 0 0
2
В параде принимают участие M военных. Командование парада решило, что наиболее эффектное построение военных – в форме квадрата, то есть число участников построения должно быть точным квадратом. Но поскольку число M может не быть точным квадратом, разрешается разбить военных на несколько полков, каждый из которых строится в форме квадрата. Для красоты все полки должны быть одинакового размера, также командование парада хочет, чтобы размер каждого полка был как можно больше. Определите максимально возможный размер полка.

Входные данные
Программа получает на вход одно целое положительное число M, не превосходящее 2×109, – количество участников парад.

Выходные данные
Программа должна вывести одно число – максимально возможный размер полка. 
 
Примеры
Входные данные Выходные данные
1
180
36

 
✓ 55✗ 60700средняяВойти и решать

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


Входные данные
Программа получает на вход две строки s1 и s2.

Ограничения

  • 1 <= длина s1 и s2 <= 500;
  • s1 и s2 состоят из маленьких английских букв.

Выходные данные
Выведите ответ на задачу.
 
 
Примеры
Входные данные Выходные данные Примечание
1
sea
eat
2
Вам нужно сделать один шаг, чтобы превратить "sea" в "ea", и еще один шаг, чтобы превратить "eat" в "ea".

Вам даны две строки s1 и s2. Вы можете удалить из обоих строк любое количество символов. Ваша цель сделать строки одинаковыми.
Найдите наименьшую сумму ASCII кодов всех удаленных символов.


Входные данные
Программа получает на вход две строки s1 и s2.

Ограничения

  • 1 <= длина s1 и s2 <= 1000;
  • s1 и s2 состоят из маленьких английских букв.

Выходные данные
Выведите ответ на задачу.
 
 
Примеры
Входные данные Выходные данные Примечание
1
sea
eat
231
Удаление "s" из слова "sea" добавляет к сумме ASCII код буквы "s" (115).
Удаление буквы "t" из слова "eat" добавляет к сумме 116.
В итоге обе строки равны, а 115 + 116 = 231 - минимально возможная сумма для достижения этой цели.

Паровозики стоят на железной дороге параллельно друг другу на параллельных участках пути. Условно весь участок железной дороги можно представить в виде числовой прямой. В этом случае i-й паровозик на данной числовой прямой покрывает некоторое количество заданных целых точек (от точки starti до точки endi, включая данные точки).

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

Входные данные
В первой строке записано число N - количество паровозиков на железной дороге. В следующих N строках записаны по 2 числа (starti, endi)  - тоски начала и конца i-го паровозика. 

Ограничения

1 <= N <= 100
1 <= starti <= endi <= 100


Выходные данные
Выведите ответ на задачу.
 

Примеры
Входные данные Выходные данные Примечания
1
3
3 6
1 5
4 7
7
Все точки от 1 до 7 покрыты хотя бы одним паровозиком. Поэтому ответ 7.
В числовом массиве из N чисел поменять местами первый отрицательный и последний положительный элементы. Учесть возможность того, что отрицательных или положительных элементов в массиве может не быть. В этом случае, никакие элементы местами менять не нужно.


Входные данные
В первой строке записано число N - количество элементов одномерного массива. Во второй строке записаны N чисел numsi - элементы массива.

Ограничения
1 <= N <= 105
-109 <= numsi <= 109


Выходные данные
Выведите в одну строку измененный массив, разделяя элементы одним пробелом.
 
 
Примеры
Входные данные Выходные данные
1
5
1 -2 -1 2 -2
1 2 -1 -2 -2
В числовом массиве из N чисел переставьте местами элемент с индексом first с элементом, который имеет минимальное значение. Если минимальных элементов несколько, то необходимо взять последний из них (минимальный элемент с большим индексом). Индексация элементов начинается с 0.

Входные данные
В первой строке записаны через пробел два числа N - количество элементов одномерного массива и число first. Во второй строке записаны N чисел numsi - элементы массива.

Ограничения
1 <= N <= 105
-109 <= numsi <= 109
0 <= first < N


Выходные данные
Выведите в одну строку измененный массив, разделяя элементы одним пробелом.
 
 
Примеры
Входные данные Выходные данные
1
5 2
1 -2 2 -1 -2
1 -2 -2 -1 2
В числовом массиве из N чисел переставьте местами элемент с индексом first с элементом, который имеет минимальное значение. Если минимальных элементов несколько, то необходимо взять первый из них (минимальный элемент с меньшим индексом). Индексация элементов начинается с 0.

Входные данные
В первой строке записаны через пробел два числа N - количество элементов одномерного массива и число first. Во второй строке записаны N чисел numsi - элементы массива.

Ограничения
1 <= N <= 105
-109 <= numsi <= 109
0 <= first < N


Выходные данные
Выведите в одну строку измененный массив, разделяя элементы одним пробелом.
 
 
Примеры
Входные данные Выходные данные
1
5 2
1 -2 2 -1 0
1 2 -2 -1 0
В числовом массиве из N чисел переставьте местами элемент с индексом first с элементом, который имеет максимальное значение. Если максимальных элементов несколько, то необходимо взять первый из них (максимальный элемент с меньшим индексом). Индексация элементов начинается с 0.

Входные данные
В первой строке записаны через пробел два числа N - количество элементов одномерного массива и число first. Во второй строке записаны N чисел numsi - элементы массива.

Ограничения
1 <= N <= 105
-109 <= numsi <= 109
0 <= first < N


Выходные данные
Выведите в одну строку измененный массив, разделяя элементы одним пробелом.
 
 
Примеры
Входные данные Выходные данные
1
5 2
1 3 2 -1 0
1 2 3 -1 0
Юному Шелдону очень интересно проводить эксперименты, результатом которых являются различные последовательности чисел. После проведения очередных экспериментов, Шелдон получил определенную последовательность чисел и заинтересовался вопросом, сможет ли он из исходной последовательности вычеркнуть некоторые числа таким образом, чтобы оставшиеся числа образовывали возрастающую подпоследовательность, где каждый элемент строго больше предыдущего. Шелдон хочет вычеркнуть как можно меньше чисел (в том числе, если можно, то ничего не вычеркивать). 
Теперь он хочет узнать, сколько существует различных вариантов выбрать одну такую подпоследовательность из данной последовательности чисел. Помогите юному Шелдону найти ответ для заданной последовательности чисел.

Входные данные
Первая строка содержит натуральное число n - длина последовательности Шелдона. Вторая строка содержит n чисел - элементы последовательности (numsi).
 

Ограничения

  • 1 <= n <= 2000
  • -106 <= numsi <= 106


Выходные данные
Выведите ответ на задачу.
 
Примеры
Входные данные Выходные данные
1
5
1 3 5 4 7
2
2
5
2 2 2 2 2
5
Эпическое соревнование проводится по почти олимпийской системе. Среди n команд, в несколько туров определяют единственную команду-победительницу по следующим правилам.
  • Если количество команд, участвующих в очередном туре, четное, то команды разбиваются по парам. Эти пары соревнуются между собой (т.е. проводится n/2 матчей) и в следующий раунд выходит ровно половина команд (команды всегда соревнуются между собой до победы какой-либо команды);
  • Если количество команд, участвующих в очередном туре нечетное, то перед началом этого тура проводится лотерея, которая определит ту одну удачливую команду, которая получит пропуск в следующий раунд. Оставшиеся команды опять разбиваются на пары и соревнуются между собой (т.е. сыграют между собой n/2 матчей).
Вас же просят определить количество матчей, сыгранных в соревновании до определения победителя.


Входные данные
Программа получает на вход натуральное число n (1 <= n <= 200) - количество команд, которое участвует в соревновании.

Выходные данные
Выведите единственное число - ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 7 6
✓ 12✗ 8500лёгкаяВойти и решать
Программа получает на вход строку s, содержащую как буквенные символы так и цифровые,
Дополните приведенный код, используя списочное выражение так, чтобы получить новый список, содержащий только не цифровые символы данной строки s.
Программа получает на вход строку s, содержащую как буквенные символы так и цифровые,
Дополните приведенный код, используя списочное выражение так, чтобы получить новый список, содержащий только цифровые символы данной строки s.
Программа получает на вход строку, состоящую из слов. Каждое слово разделено одним пробелом. Все слова из этой строки записываются в список my_list.
Дополните приведенный код, используя списочное выражение так, чтобы получить новый список, содержащий слова исходного списка с нечетным числом символов.
Поделиться
Класснуть