Информатика

15 732 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.

Дано число n. Найдите число из диапазона от 1 до n с максимальной суммой своих делителей (включая непростые делители, 1 и само число). Если таких чисел несколько, выведите минимальное из них.

Входные данные: На вход программе подается натуральное n<=2500.
Выходные данные: Выведите искомое число.

Примеры
Входные данные Выходные данные
1 5 4
2 12 12

В магазине продается мастика в ящиках по a кг (тип 1), b кг (тип 2) и c кг (тип 3). Как купить ровно N кг мастики, не вскрывая ящики? Сколькими способами можно это сделать?
 

Входные данные 
Входная строка содержит четыре числа, разделённые пробелами: a , b , c и N .

Выходные данные 
В первой строке нужно вывести число K способов, которыми можно купить заданное количество мастики (N кг), не вскрывая ящики. В каждой из последующих K строчек программа должна вывести (через пробелы) три числа, ka , kb и kc : количество ящиков 1, 2 и 3 типов для каждого из K вариантов закупки. Варианты должны выводиться в лексикографическом порядке: сначала варианты с наименьшим значением ka , для одинаковых ka – сначала варианты с наименьшим значением kb и т.д.

 

Примеры
Входные данные Выходные данные
1 15 17 21 185 5
0 1 8
1 10 0
3 7 1
5 4 2
7 1 3
Дан массив произвольных целых чисел. Напишите программу, которая за один проход по массиву находит непрерывный кусок, сумма чисел в котором максимальна.
Примечание. Фактически требуется найти такие i и j (i<=j), что сумма всех элементов массива от ai до aj включительно будет максимальна. Индексация элементов начинается с 1.

Входные данные
В первой строке задается натуральное число n <= 100000 — количество элементов в массиве. В следующих n строках задаются сами элементы массива — целые числа, по модулю не превосходящие 30 000.

Выходные данные
Выведите пару искомых значений индексов. Если таких пар несколько, то j должно быть минимально возможным, а при равных j значение i должно быть максимально возможным. В первой строке выведите i, во второй - j.
 
Примеры
Входные данные Выходные данные
1 5
-1
2
3
-2
2
2
3
2 7
2
-2
3
-1
5
-2
7
3
7
Дан массив чисел. Необходимо записать в другой массив, все числа Фибоначчи исходного массива. Если в исходном массиве нет чисел Фибоначчи, программа должна вывести число 0.

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

Выходные данные
Программа должна вывести в одну строчку все элементы построенного массива, разделив их пробелами. Если ни одного подходящего элемента в массиве не было, программа должна вывести число 0.
 
Примеры
Входные данные Выходные данные
1 6
4 14 5 8 12 13
5 8 13
Дан массив чисел. Необходимо записать в другой массив все простые числа исходного массива. Если в исходном массиве нет простых чисел, программа должна вывести число 0.

Входные данные
Первая строка содержит размер массива N. Во второй строке через пробел задаются N натуральных чисел – элементы массива (все числа не превышают 1000). Гарантируется, что 0 < N ≤ 10000.

Выходные данные
Программа должна вывести в одну строчку все элементы нового массива, разделяя их пробелами. Если ни одного подходящего элемента в массиве не было, программа должна вывести число 0.
 
Примеры
Входные данные Выходные данные
1 6
1 2 3 4 5 6
2 3 5
Напишите программу, которая в исходном массиве чисел находит самую длинную цепочку, состоящую из одинаковых элементов. Выведите элемент, из которого состоит данная цепочка и длину этой цепочки. Если в массиве есть несколько цепочек максимальной длины, нужно вывести данные по первой из них.

Входные данные
Первая строка содержит размер массива N. Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 3 < N ≤ 10000.

Выходные данные
Выведите элемент, из которого состоит искомая цепочка и длину этой цепочки.
 
Примеры
Входные данные Выходные данные
1 7
1 2 2 1 1 1 3
1 3
Дан упорядоченный по неубыванию список чисел. Определите, сколько в нем различных элементов.

Входные данные
Вводится список чисел. Все числа списка находятся на одной строке. Количество чисел не больше 1000. Каждое число по модулю меньше 2*109.

Выходные данные
Выведите ответ на задачу.
 
Примеры
Входные данные Выходные данные
1 1 2 2 3 3 3 3
 
Примечание
Для считывания данных на языке С++ используйте цикл
while(cin >> a)
{
  // работа с числом a
}
Считать данные на языке Python можно сразу в массив
A = list(map(int, input().split()))
Петя перешёл в другую школу. На уроке физкультуры дети строятся по росту, начиная с самого высокого. Напишите программу, которая поможет Пете определить свое место в строю.

Входные данные
Программа получает на вход невозрастающую последовательность натуральных чисел, означающих рост каждого учащегося в строю. После этого вводится число x – рост Пети. Все числа во входных данных натуральные и не превышают 200. Количество чисел в последовательности не превышает 200.

Выходные данные
Выведите номер, под которым Петя должен встать в строй. Если в строю есть люди с одинаковым ростом, таким же, как у Пети, то он должен встать после них.
 
Примеры
Входные данные Выходные данные
1 165 163 160 160 157 157 155 154 
162
3
2 165 163 160 160 157 157 155 154 
160
5
 
Примечание
Для считывания данных на языке С++ используйте цикл
while(cin >> a)
{
  // работа с числом a
}
Обратите внимание, на языке С++ такой способ считывания считает сразу все данные из входного потока, включая последнюю строку.

Считать данные на языке Python можно сразу в массив
A = list(map(int, input().split()))
Реализуйте структуру данных для эффективного вычисления максимумов подряд идущих элементов массива.

Входные данные
В первой строке вводится одно натуральное число N (\(1 <= N <= 100000\)) — количество чисел в массиве. Во второй строке вводятся N чисел от 1 до 100000 — элементы массива. В третьей строке вводится одно натуральное число K (\(1 <= K <= 30000\)) — количество запросов на вычисление максимума. В следующих K строках вводится по два числа — номера левого и правого элементов отрезка массива (считается, что элементы массива нумеруются с единицы).

Выходные данные
Для каждого запроса выведите значение максимального элемента на указанном отрезке массива. Числа выводите в одну строку через пробел.

 

Примеры
Входные данные Выходные данные
1 5
2 2 2 1 5
2
2 3
2 5
2 5
Дано N целых чисел. Найти третий по величине максимальный элемент последовательности (элемент, который бы стоял третьим, если бы входные данные отсортировали по неубыванию).

Входные данные
В первой строке задается число N (\(3<=N<=10^5\)). Далее идут N строк, по одному числу в каждой строке.

Выходные данные
Выведите третий максимальный элемент.
 

 

Примеры
Входные данные Выходные данные
1 7
10
15
35
35
14
35
10
35
2 5
10
5
7
11
9
9
 
 
В школе  № 2007 на уроке информатики в системе SilverTests Васе попалась следующая задача: «В  младшей группе одного объединённого детского сада воспитательница  изучала с детишками  порядок цветов радуги. Она отыскала семь соответствующих цветных мелков и начала рисовать полоски, не нарушая последовательности цветов.  Начала она с красной полоски. Когда доходила до фиолетовой полоски, опять рисовала  красную. Воспитательница  успела нарисовать N полосок, когда у неё закончились  мелки. Напишите программу, которая вычисляет количество полосок каждого цвета».  Вася взялся писать программу, но тут обнаружилось, что на клавиатуре отсутствует клавиша с буквой  «i». Помогите Васе написать программу с учётом этого обстоятельства.

Входные данные: Вводится одно целое положительное число N > 0.
Выходные данные: Выведите ответ на задачу.

Если в коде программы встречается буква «i» система выдаст сообщение:  Использование запрещенных операторов
 
Примеры
Входные данные Выходные данные
1 3 'red - 1'
'orange - 1'
'yellow - 1'
'green - 0'
'blue - 0'
'sky - 0'
'purple - 0'
В 1995 году Роулинг закончила свою рукопись романа «Гарри Поттер и философский камень», которую печатала на старой пишущей машинке. После восторженного отзыва Брайони Ивенса, читателя, которому было предложено оценить первые три главы книги, фулхэмская фирма литературных агентов Christopher Little Literary Agents согласилась представлять Роулинг во время поисков издателя. Книга была отправлена в двенадцать издательств, но все они отвергли рукопись. Год спустя она, наконец, получила зелёный свет (и 1500 фунтов аванса) от редактора Барри Каннингема из лондонского издательства Bloomsbury.
Дж. Роулинг во время поисков издателей получила N предложений напечатать роман. Помогите ей оценить, сколько всего издательств предложило ей максимальный гонорар.

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

Выходные данные
Выведите одно  число - количество издательств с максимальным размером гонорара.
 

 

Примеры
Входные данные Выходные данные
1 4
1547
1600
1325
1600
2
Джоан Роулинг - автор знаменитых историй про юного волшебника Гарри Поттера. Перед тем, как написать Гарри Поттера, Джоан изучала различные рукописи, описания и источники о Хрониках Нарнии. Позже она также начала изучать мир Средиземья Джона Толкиена. Так продолжалось ее обучение вплоть до начала рабочей практики.
Нет точных данных сколько книг прочитала Джоан, но, наверняка они у нее все сохранились.
Помогите знаменитой писательнице посчитать общее количество прочитанных страниц из всех книг.

Задача должна быть решена без использования массивов!

Входные данные
В первой строке вводится число N - количество книг (\(0 < N <=100\)). Далее идут N чисел, по одному числу в строке, - количество страниц в соответствующей книге (натуральные числа, меньшие 1000 каждое).

Выходные данные
Выведите одно число - общее количество страниц во всех книгах.
 

 

Примеры
Входные данные Выходные данные
1 3
125
215
300
640

Числа Фибоначчи, обозначаемые обычно F(n) образуют последовательность, называемую последовательностью Фибоначчи, такую, что каждое число является суммой двух предыдущих, начиная с 0 и 1. То есть,

F(0) = 0, F(1) = 1
F(n) = F(n - 1) + F(n - 2), для n > 1.

По заданному n, вычислите F(n) (0 <= n <= 80).
 

Примеры
Входные данные Выходные данные
1 2 1
2 3 2
3 4 3

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

Входные данные: Вводится натуральное число n.
Выходные данные: Выведите ответ на задачу.

Примеры
Входные данные Выходные данные
1 3 102
111
120
201
210
300
Из цветных лампочек комплектуют новогодние гирлянды. Сначала лампочки связываются в "снежинку" ровно по  K штук в каждой, а потом "снежинки" - в гирлянды, причем каждая гирлянда вмещает не более M "снежинок". Последняя гирлянда (только она одна) может быть короче других (включать в себя меньше "снежинок", чем остальные). Всего имеется N лампочек.  Сколько всего получится гирлянд, сколько "снежинок" будет в последней гирлянде и сколько лампочек останется неиспользованными (нужно использовать как можно больше лампочек)? Написать программу: вводятся три числа целых N, M, K в одной строке; вывести три числа в одной строке - сначала количество получившихся гирлянд, затем количество "снежинок" в последней гирлянде, а затем количество неиспользованных лампочек

 

Примеры
Входные данные Выходные данные
1 35 3 4 3 2 3
На складе в коробки упаковывают волейбольные мячи. Сначала мячи пакуются в сетки ровно по  N штук в каждую, а потом сетки - в коробки, причем в одну коробку помещается не более L сеток. Последняя коробка может быть неполная. Всего имеется М мячей.  Сколько всего понадобится коробок, сколько сеток будет в последней коробке и сколько мячей останется на складе не упаковано  (упаковать нужно как можно больше мячей)? Написать программу: вводятся три числа целых M, L, N в одной строке; вывести три числа в одной строке - сначала количество потребовавшихся коробок, затем количество сеток в последней коробке, а затем количество не упакованных мячей

 

Примеры
Входные данные Выходные данные
1 40 4 3 4 1 1
 В библиотеке на стеллажи расставляют книги. Книги ставятся на полки ровно по  K штук на каждую, если полка не может быть заполнена полностью, она остается пустой. В каждом стеллаже по М полок. Последний стеллаж может быть заполнен не полностью. Всего имеется N книг. Сколько всего понадобится стеллажей, сколько полок будет заполнено на последнем стеллаже и сколько книг останется не выставлено на стеллажи (выставить нужно как можно больше книг)? Написать программу: вводятся три числа целых N, M, K в одной строке; вывести три числа в одной строке - сначала количество потребовавшихся стеллажей, затем количество заполненных книгами полок на последнем стеллаже, а затем количество не выставленных книг

 

Примеры
Входные данные Выходные данные
1 50 70 8 1 6 2
Упаковывают школьные тетради. Сначала тетради складывают в стопки ровно по  N штук в каждую, а потом стопки перевязывают  и складывают в коробки, причем в одну коробку помещается не более L стопок. Последняя коробка может быть неполная. Всего имеется М тетрадей.  Сколько всего понадобится коробок, сколько стопок будет в последней коробке и сколько тетрадей останется не упаковано (упаковать нужно как можно больше тетрадей)? Написать программу: вводятся три целых числа M, L, N в одной строке; вывести три числа в одной строке - сначала количество потребовавшихся коробок, затем количество стопок в последней коробке, а затем количество оставшихся тетрадей

 

Примеры
Входные данные Выходные данные
1 20 3 6 1 3 2
Поделиться
Класснуть