Информатика

4 314 задачвместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
При каком минимальном натуральном числе n, программа выведет на экран два числа, такие, что первое - четное, второе - нечетное.
 
Python
s = 0
k = 0
for j in range(14, n):
    k += j // 10 % 10
    s += j % 10
print (k, s)
Пусть M – сумма простых натуральных делителей целого числа, не считая единицы и самого числа, а KM - количество таких делителей. Если таких делителей у числа нет, то значение M считается равным нулю.
Напишите программу, которая перебирает целые числа, большие 2 560 000, в порядке возрастания и ищет среди них такие, для которых значение M нечетное, а КM=6. Выведите первые пять найденных чисел и соответствующие им значения M

Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем – значение M (через один пробел). Строки выводятся в порядке возрастания найденных чисел.
Пусть M – количество различных четных натуральных  нетривиальных делителей целого числа, а SM - сумма этих делителей.
Напишите программу, которая перебирает целые числа, большие  1 000 000, в порядке возрастания и ищет среди них такие, у которых M = 5. Если таких делителей у числа нет, то значение SM считается равным нулю.  Выведите первые пять найденных чисел и соответствующие им значение SM

Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем – значение SM (через один пробел). Строки выводятся в порядке возрастания найденных чисел.
Пусть M – сумма простых натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то значение M считается равным нулю.
Напишите программу, которая перебирает целые числа, большие  500 000, в порядке возрастания и ищет среди них такие, для которых значение 10000 < M < 50000 . Выведите первые пять найденных чисел
и соответствующие им значения M

Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем – значение M (через один пробел). Строки выводятся в порядке возрастания найденных чисел.
Пусть M – разность (по модулю) двух парных натуральных делителей целого числа, не равных единице и самому числу. Если таких делителей у числа нет, то значение M считается равным нулю.
Напишите программу, которая перебирает целые числа, большие  1 000 000, в порядке возрастания и ищет среди них такие, у которых найдется хотя бы одно значение M такое, что 0 < M < 1000 . Выведите первые пять найденных чисел и соответствующие им значение M. Если у числа подходящих значений M несколько, то выведите значение M, образованное разностью с минимальным делителем, не равным 1.

Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем – значение M (через один пробел). Строки выводятся в порядке возрастания найденных чисел.

 
Пример
Для числа 12 парными делителями являются числа:
2 и 6 (М = 4)
3 и 4 (М = 1)
В ответе необходимо указать значение M = 4, так как полученная разность образованна с минимальным делителем 2.
Пусть M – сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то значение M считается равным нулю.
Напишите программу, которая перебирает целые числа, большие 700 000, в порядке возрастания и ищет среди них такие, для которых значение оканчивается на 8. Выведите первые пять найденных чисел
и соответствующие им значения M

Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем – значение M (через один пробел). Строки выводятся в порядке возрастания найденных чисел.
В каком-то другом мире сегодня 31 декабря. У деда Коковани есть A мандаринок, а у Дарёны - B мандаринок. Дед Кокованя выполняет следующее действие K раз:
  • Если у деда Коковани есть одна или несколько мандаринок, он отдает Дарёне одну из его мандаринок и она её съедает.
  • В противном случае, если у Дарёны есть одна или несколько мандаринок, она отдает одну деду и он ее съедает.
  • Если у них обоих нет ни одной мандаринки, то никто ничего не съедает.
Сколько мандаринок останется у деда Коковани и Дарёны в конце игры?

Входные данные
Программа получает на вход три целых числа в одной строке через пробел: A, B и (0 <= A, B, K <= 1012).

Выходные данные
Выведите на экран 2 числа - количество мандаринок, которое останется у деда Коковани и Дарёны в конце игры. 
 
Примеры
Входные данные Выходные данные Пояснение
1 2 3 3 0 2 Дед Кокованя сделает следующее:
1) У него две мандаринки, поэтому он отдает одну Дарене и она съедает ее.
2) Теперь у него осталось одна мандаринка, и он опять отдаст ее Дарёна, которая ее съест.
3) Теперь у него не осталось мандаринок, но у Дарёны их три, поэтому дед Кокованя съедает одну из них.
Таким образом, в итоге у деда Коковани будет 0 мандаринок, а у Дарёны - 2.
2 500000000000 500000000000 1000000000000 0 0 Следите за переполнением!
В каком-то другом мире сегодня 30 декабря. В саду деда Коковани посажено N деревьев. Высота i-го дерева (1  <= i <= N) равна hi метров. Он решает выбрать из этих деревьев K деревьев и украсить их гирляндой. Чтобы декорации были красивее, высота украшенных деревьев должна быть как можно ближе друг к другу. Более конкретно, пусть высота самого высокого украшенного дерева будет hmax метров, а высота самого низкого декорированного дерева будет hmin метров. Чем меньше значение hmax-hmin, тем лучше. Определите минимально возможное значение hmax-hmin?

Входные данные
В первой строке записаны через пробел два числа N и K (2 <= N, K <= 105). В следующих N строках записаны целые числа hi (1 <= hi <= 109), по одному в строке.

Выходные данные
Выведите на экран ответ на задачу.
 
Примеры
Входные данные Выходные данные Пояснение
1 5 3
10
15
11
14
12
2 Если украсить первое, третье и пятое деревья, hmax=12, hmin=10, hmax-hmin=2
2 5 3
5
7
5
7
7
0  
Рассмотрим строки, состоящие из первых k букв английского алфавита. Некоторые пары букв называются коммутирующими: если они стоят рядом в строке, их разрешается поменять местами.
Даны пары коммутирующих букв и две строки равной длины s и t. Требуется выяснить, можно ли получить t из s, выполнив произвольное количество операций: поменять местами две рядом стоящие коммутирующие буквы.

Входные данные
Первая строка содержит два целых числа k и n — количество используемых букв и количество пар коммутирующих букв (2 ≤ k ≤ 10, 0 ≤ n ≤ k(k − 1)/2).
Следующие n строк содержат по две буквы, не разделенные пробелом: пары коммутирующих букв. Гарантируется, что каждая пара приведена во вводе не более одного раза.
Следующие две строки содержат строки s и t, они имеют равную длину L (1 ≤ L ≤ 100 000) и состоят из первых k букв латинского алфавита.

Выходные данные
Выведите «YES», если строку t можно получить из строки s описанными операциями.
В противном случае выведите «NO».
 
Примеры
Входные данные Выходные данные
1 3 2
ab
bc
abbcabc
abcacbb
YES
2 3 2
ab
bc
abbcabc
aabbbcc
NO
Наибольшим общим делителем непустого набора натуральных чисел A называется максимальное натуральное число d, такое что оно является одновременно делителем всех чисел множества A.
Задан массив натуральных чисел [a1, a2, . . . , an] и число k. Требуется выбрать в нем подмассив из k подряд идущих элементов [al, al+1, . . . , al+k−1], чтобы их наибольший общий делитель был как можно больше, и вывести этот наибольший общий делитель.

Входные данные
Первая строка ввода содержит два целых числа n и k (2 ≤ n ≤ 500 000, 2 ≤ k ≤ n).
Вторая строка содержит n натуральных чисел a1, a2, . . . , an (1 ≤ ai ≤ 1018).

Выходные данные
Выведите одно натуральное число — максимальное возможное значение наибольшего общего делителя элементов подмассива длины k заданного массива.
Примеры
Входные данные Выходные данные
1 10 4
2 3 4 8 12 6 12 18 4 3
6
Перестановкой n элементов называется массив из различных натуральных n чисел, каждое из которых от 1 до n. Например, все перестановки 3 элементов: [1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1].
Элементы перестановки пронумерованы от 1 до n, например для перестановки a = [3, 1, 2] выполнено a[1] = 3, a[2] = 1, a[3] = 2. Элемент с номером i называется неподвижной точкой, если a[i] = i. Так, в перестановке [3, 1, 2] нет неподвижный точек, а в перестановке [1, 3, 2] элемент a[1] = 1 является неподвижной точкой.
Упорядочим все перестановки лексикографически — сначала по первому элементу, потом по второму, и так далее. В начале условия все перестановки трех элементов приведены в лексикографическом порядке. Оставим только те перестановки, которые не содержат неподвижных точек. Для n = 3 останутся перестановки [2, 3, 1] и [3, 1, 2].
По заданным n и t требуется вывести первые t в лексикографическом порядке перестановок n элементов без неподвижных точек. Перестановки следует выводить в лексикографическом порядке.

Входные данные
На ввод подаются два целых числа n и t (2 ≤ n ≤ 1000, 1 ≤ t ≤ 104, nt ≤ 105 ). Гарантируется, что существует хотя бы t перестановок n элементов без неподвижных точек.

Выходные данные
Выведите t строк, на i-й из них выведите n чисел: i-ю в лексикографическом порядке перестановку n элементов без неподвижных точек.
Примеры
Входные данные Выходные данные
1 3 1 2 3 1
Пете необходимо переправить стадо коров через болото. Для переправы можно использовать доски, которые соединяют кочки. После того, как на кочке кто-нибудь побывал, она тонет. Вам требуется переправить максимальное количество коров через болото.

Входные данные
В первой строке входного файла записано число досок N (0 <= N <= 1000). Далее для каждой доски записаны координаты кочек - концов доски (-231 <= Xi,Yi <= 231). Затем записаны координаты начальной и конечной точек (точки различны и доски, их соединяющей нет). Все числа во входном файле целые.

Выходные данные
Вывести максимально количество коров, которых можно переправить
 
Примеры
Входные данные Выходные данные
1 8
0 0 1 0     
1 0 2 1    
1 0 2 -1
2 1 3 0     
2 -1 3 0  
1 0 4 0
3 0 4 0     
0 0 3 0    
0 0 
4 0
2
✓ 6✗ 30800средняяВойти и решать
Новый премьер-министр решил проехать по России от Москвы до Владивостока по железной дороге, а затем вернуться обратно. Он поручил своим помощникам разработать маршрут так, чтобы не пришлось два раза проезжать через один и тот же город. Однако помощники сообщили, что для Российских железных дорог это невозможно. Определите, в каких городах премьер-министр будет вынужден побывать дважды.

Входные данные
В первой строке входного файла находятся числа N - количество российских городов, соединенных железными дорогами в единую сеть и М - количество железнодорожных перегонов, соединяющих пары городов (1 <= N <= 20000, 1 <= M <= 200000). Города имеют номера от 1 до N. В каждой из следующих M строк находится пара натуральных чисел, описывающая между какими двумя городами проходит соответствующая железнодорожная ветка. В последней строке находятся два целых числа S и Е (1 <= S != E <= N) - номера Москвы и Владивостока по версии РЖД.

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

 
 
Примеры
Входные данные Выходные данные
1 3 2
1 2
2 3
3 1
1
2
Маленький мальчик делает бусы. У него есть много пронумерованных бусинок. Каждая бусинка имеет уникальный номер - целое число в диапазоне от 1 до N. Он выкладывает все бусинки на полу и соединяет бусинки между собой произвольным образом так, что замкнутых контуров не образуется. Каждая из бусинок при этом оказывается соединенной с какой-либо другой бусинкой. Требуется определить, какое максимальное количество последовательно соединенных бусинок присутствует в полученной фигуре.

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

Выходные данные
Вывести одно число - искомое количество бусинок.
 
Примеры
Входные данные Выходные данные
1 2
1 2
2
2 5
2 1
2 3
2 4
2 5
3
Спелестологический клуб «Залезь и посмотри» часто привлекается к поиску заблудившихся в каменоломнях незадачливых путешественников. Заблудившиеся в темноте и тесноте паникуют, хаотично перемещаются, ходят кругами и осложняют этим поисковые работы. Гораздо удобнее было бы, если бы потерявшиеся сидели в каком-нибудь зале и никуда не двигались.
Каменоломни представляют собой набор из N залов, занумерованных числами от 1 до N и M проходов между ними. Проходы могут быть как двусторонними, так и односторонними (например, с сильным вертикальным уклоном). Ни один проход не соединяет зал сам с собой. Пара залов может соединяться максимум одним проходом. Гарантируется, что двигаясь только по односторонним проходам, нельзя попасть в тот зал, из которого вышли путешественники.
Чтобы избежать хождения заблудившихся по кругу, члены клуба решили нанести на двусторонние проходы специальные аварийные стрелки так, чтобы идя по этим стрелкам нельзя было попасть в уже посещенное место, откуда бы ни началось движение и, в итоге, потерявшиеся оказались бы в одном из залов, из которого нельзя уйти, двигаясь по стрелочкам — там их и найдут спелестологи.
Для каждого двустороннего прохода определите допустимое направление движения.

Формат входных данных
В первой строке входных данных задается два числа N (2 ≤ N ≤ 100000) и M (1 ≤ M ≤ 100000) — количество залов и проходов между ними.
В следующих M строках задаются описания проходов. Каждое описание состоит из трёх чисел A, B и D (1 ≤ A, B ≤ N). Числа A и B задают номера соединенных проходом залов. Если D = 1, то проход односторонний из зала A в зал B. Если D = 2, то проход двусторонний.

Формат выходных данных
Для каждого двустороннего прохода из входных данных выведите пару чисел, описывающих соединяемые этим проходом залы. Движение может осуществляться из первого зала во второй.
Если правильных ответов несколько — выведите любой из них. Порядок вывода описания проходов не важен. Гарантируется, что ответ всегда существует.
 
 
Примеры
Входные данные Выходные данные
1 4 5
1 2 1
2 4 2
2 3 1
3 4 1
4 1 2
2 4
1 4
Склиссы — "сумчатые парнокопытные" в виде коровы с перепончатыми крыльями с планеты Шешинеру. Несмотря на способность летать, склисс, как и любая земная корова, достаточно ленива и тугодумна (почитайте побольше про склиссов ). 
Профессор Игорь Селезнев взял на борт трех склиссов для изучения: Бесси (Bessie), Элси (Elsie) и Милдред (Mildred), каждая из которых изначально дает 7 галлонов молока в день. Поскольку известно, что надой склисса со временем может измениться, профессор Селезнев проводит периодические измерения в течение следующих 100 дней и записывает их в журнал. Записи в его журнале выглядят так:

35 Bessie -2
14 Mildred +3


Первая запись указывает на то, что на 35-й день надой Бесси был на 2 галлона ниже, чем при последнем измерении. Следующая запись указывает, что на 14-й день надой молока у Милдред увеличился на 3 галлона по сравнению с тем, когда он был измерен в последний раз.
Профессор Селезнев занят во многих исследованиях, поэтому он может сделать не более одного измерения в день. К сожалению, он не всегда успевает сразу записать все в журнал и, поэтому его измерения могут идти не в хронологическом порядке.

Чтобы поддерживать мотивацию склиссов, Игорь Селезнев с гордостью вывешивает на стене организованной фермы фотографию склисса с самым высоким надоем молока (если таких склиссов несколько, то он вывешивает все их фотографии).
Определите количество дней, в течение которых профессору Игорю Селезневу нужно было бы менять фотографию.

Входные данные
Первая строка ввода содержит N, количество измерений, которые сделал профессор. Каждая из последуюших N строк описывает одно измерение, в формате, описанном выше: день (целое число от 1 до 100), имя склисса, и изменение производительности (ненулевое целое число). Количество молока, которое даёт любой склисс, всегда будет в интервале 0..1000.

Выходные данные
Выведите е количество дней, в течение которых профессору Игорю Селезневу нужно было бы менять фотографию.
 
Примеры
Входные данные Выходные данные Пояснение
1
4
7 Mildred +3
4 Elsie -1
9 Mildred -1
1 Bessie +2
3
Иначально все склиссы дают по 7. В день 1 производительность Бесси вырастет до 9, делая её единственной победительницей и вынуждающей профессора сменить фотографию. В день 4 производительность Элси уменьшится до 6, но это не изменит того факта, что лидером останется Бэсси. В день 7 Милдред выйдет в лидеры, в день 8 Милдред сравняется с Бесси, что опять приведёт к смене карточек.
✓ 70✗ 151800средняяВойти и решать
Беззработный Дэйв от скуки  соорудил в собственной гостиной лабиринт из картонных коробок. Лабиринт содержит  K входов. Когда его подружка Энни вернулась, лабиринт невероятным образом разросся изнутри, а сам горе-изобретатель там заблудился и не может выбраться.
Единственное, что нашла Энни в комнате это карту лабиринта, который имеет размеры NхM клеток. На карте было обозначено место, в котором находится Дэйв (как так вышло никто не знает). Клетки лабиринта либо пустые, по которым можно пройти, либо в них находится стена и по ним проходить нельзя. У клетки может быть до 4-х смежных клеток, в которую можно пройти из текущей.
Энни пригласила вас помочь ей определить, с какого входа нужно начать свой путь, чтобы побыстрее дойти до Дейва. Если таких входов несколько, Энни пойдет со входа с наименьшим номером.

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

Программа получает на вход несколько строк. В первой строке - 2 числа N и M (1<= N, M <= 100, NxM <= 100), размеры лабиринта. Далее следует N строк по M символов в каждой - описание лабиринта. 0 означает, что клетка свободна; 1, что в клетке находится стена. Символ * обозначает клетку с Дэйвом.
В (N+2)-й строке находится число K (1<=K<=NxM) -- количество входов в лабиринт. Далее в K строках содержатся координаты входов. В i-й строке содержатся числа xi и yi, означающие,что i-й вход расположен в xi-й строке и в yi-м столбце (1<=xi<=N,1<=yi<=M).
Координаты входов попарно различны, все входы расположены в пустых клетках. Ни один из входов не находится в клетке с Дэйвом.


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

Выведите одно число - номер входа (нумерация начинается с 1). Если до Дэйва невозможно добраться, выведите -1.
 

 
Примеры
Входные данные Выходные данные
1
5 5
00000
00000
10*00
01111
00000
4
1 1
1 5
4 1
5 5
1
2
3 3
010
1*1
010
4
1 1
1 3
3 1
3 3
-1
Поделиться
Класснуть