Информатика

15 732 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
66401#66401
Группа молодых энтузиастов "МэК" захотели посчитать сколько сантиметров проходит палец сотрудника колл-центра, когда тот набирает номер телефона клиента на циферблате. Для начального варианта программы достаточно считать сколько палец прошёл в одном из направлений, по горизонтали или по вертикали. Расстояние между центрами всех кнопок равно 1, считается, что всегда нажимается центр кнопки.
Расстояние кнопок по диагонали (45 градусов), например между "1" и "5" равно 1.4. Расстояние между Кнопками под 30 градусов, например между "1" и "6" равно 2,2. Расстояние между "1" и "0", а также между "3" и "0" равно 3.1. Начальная позиция пальца оператора всегда на той цифра с которой начинается номер телефона.

Формат входных данных
На вход программы поступает номер телефона, содержащий от 2 до 20 цифр. Также направления: 0 - горизонталь, 1 - вертикаль.
Формат выходных данных
На выходе программа выдаёт число, равное пройденному расстоянию. Например: номер телефона 8965, считаем горизонталь. Из 8 в 9 +1, из 9 в 6 нет движения по горизонтали, из 6 в 5 +1. Общее пройденное расстояние равно 2.
Циферблат:
123
456
789
0
66181#66181
Администраторы Шлёпов и Чадов анализируют работу свиноферм в районе. В их распоряжении данные по свиноводческим хозяйствам, в том числе поголовье стада в каждом. Хозяйства со слишком низким поголовьем не представляют интереса для их работы и отбрасываются: слишком низким считается поголовье свиного стада, не превышающее 10% от поголовья самого большого стада в районе. Остальные свинофермы они выбирают для работы. Определите моду – наиболее часто встречающееся значение поголовья – на выбранных свинофермах.

Формат ввода
На вход программе в первой строке подаётся натуральное число N (N ≤ 1000) – количество хозяйств. Далее в N строках идёт по одному натуральному числу ki – поголовье свиного стада в хозяйстве номер i (1≤ ki ≤10000 голов).
Формат вывода
Выведите одно целое число – наиболее часто встречающееся значение поголовья на выбранных свинофермах. Если таких значений несколько, выведите наибольшее. Если таких значений нет, выведите 0.
66175#66175
Старшеклассник Дима собирает робота, который должен передвигаться по рельсам вокруг испытательного стенда. Всего робот умеет выполнять 12 различных команд, но для нас представляют интерес три из них, связанные с управлением манипулятором. Дима решил передавать роботу блоки инструкций в виде числа: робот получает число, переводит его в систему счисления с основанием 12 и выполняет соответствующие цифрам команды. Коды команд, отвечающих за манипуляторы робота, кратны четырём. На вход подаётся N чисел – блоков с наборами команд. В скольких блоках робот выполнил не менее M команд с манипулятором?

Формат ввода На вход программе в первой строке подается натуральное число N (N ≤ 10000) – количество наборов команд. Во второй строке подаётся целое неотрицательное число M (0 ≤ M ≤ 1000) – требуемое количество команд с манипулятором. Далее в N строках на вход подаётся по одному целому числу в диапазоне от 0 до 4*109 – блок команд, записанных в десятичной системе счисления.
Формат вывода Вывести одно целое число – в скольких блоках команд робот выполнил не менее M команд с манипулятором.
66173#66173
Автомат получает на вход последовательность натуральных чисел и работает с ними по следующим правилам:
1)Если число кратно 3, автомат добавляет его значение в первуюконтрольную сумму.
2)Если число не кратно 3, автомат добавляет его значение вовторую контрольную сумму.
После обработки последовательности автомат удваивает большую контрольную сумму, утраивает меньшую контрольную сумму, складывает их и выводит результат.
Располагая последовательностью, определите, какой результат выведет автомат.

Формат ввода
На вход программе в первой строке подается натуральное число N (5 ≤ N ≤ 10000) – количество чисел. Далее в N строках подаётся по одному натуральному числу, не превышающему 1000.
Формат вывода
Вывести одно целое число – результат обработки последовательности, который можно получить по правилам, описанным в условии задачи.
✓ 7✗ 0600лёгкаяВойти и решать
66169#66169
Одна очень известная компания Я&Ко захотела создать сеть доставок из ресторанов и кафе по всему городу, притом доставку производили бы мини-поезда. Главной проблемой стала логистика – как добраться из точки отправления в точку назначения самым быстрым способом. Но так как мини-поезда представляли собой только прототип, то в них был очень плохо проработан аккумулятор, что заставило компанию подумать про эту проблему тщательнее.
Я&Ко решили проложить рельсы между всеми точками доставки и по некоторым рельсам пустить зарядку, чтобы мини-поезда могли ехать и заряжаться. Компания решила устроить среди всех программистов, кто сможет решить их задачу, соревнование. Далее выбрать победителя, но как, пока неизвестно.
Задача состоит в следующем – есть известная карта маршрутов в городе, которая представлена в виде направленного взвешенного графа с возможными циклами. На каждом ребре графа даны значения времени перемещения между связанными вершинами и заряжает рельс или нет на этом маршруте.
За 1 минуту по рельсам зарядки мини-поезд заряжается на 10%. Если он зарядился, но всё ещё в пути на зарядных рельсах, то его заряд составляет 100%.
Для простоты расчёта количество минут мини-поезда после съезда с рельсов округляется вверх к ближайшему целому (например, поезд максимально может проехать 30 минут, что означает его 100% заряда, на рельс он заехал, когда у него осталось заряда на 10 минут, пусть время в пути по рельсу составило 4 минуты, значит зарядился он на 40%, что составляет 12 минут, потому после съезда с зарядного рельса у него останется запас хода на 10 + 12 = 22 минуты.
Задача – найти минимальное время, за которое мини-поезд сможет доехать до клиента со стартовой точки, если точно известно, что он это сделать сможет.

Входные данные
на первой строке подаются два целых числа (1 <= N,M <= 1000), где N – количество вершин графа, M - количество рёбер.
на второй строке подаётся целое число T (1 <= T <= 100), где T – время, которое может проехать полностью заряженный мини-поезд;
на третьей строке подаются через пробел два целых числа – номер стартовой вершины и номер конечной вершины;
далее на M строках подаются рёбра графа через пробел с указанием зарядный рельс на данном пути или нет (0 – не зарядный, 1 – зарядный) (<откуда> <куда> <время в пути> <признак зарядного рельса>).
Выходные данные
выведите на первой строке количество минут, которое понадобится мини-поезду, чтобы полностью доехать до клиента (конечной точки) в виде одного целого числа.

Примечание
•робот изначально заряжен на 100%.
 
66165#66165
Ученики Школы №1232 обожают все праздники в году, так как школа всегда организует очень много всяких интересных активностей: конкурсов, викторин, квизов и так далее. И в очередном из праздников учителя захотели сделать интересную викторину: ученики находились на поле, когда начинала играть музыка, они перемещались в хаотичном порядке, когда заканчивала, через колонки называлось число K, что означало, что ученикам нужно было объединиться в группы из K человек, кто не успел, выбывали из игры. Далее игра снова продолжалась с теми учениками, которые остались.
Проблемой этой игры составлял выбор – с кем объединиться каждому ученику, так как абсолютно все ученики были дружелюбными и знали друг друга в школе.
Учителя всегда интересуются тем, как поведут себя ребята в стрессовой ситуации, потому запустили заранее дрон над полем, картинка с которого передавалась в программу, которая преобразовывала после окончания музыки снимок учеников сверху в набор координат в плоскости OXY. Далее находилась пара самых близких друг к другу двух учеников.
Напишите программу, которая на основании преобразованного снимка в координаты, выведет имена двух учеников, которые наиболее близки по расстоянию друг к другу на момент окончания музыки.

Входные данные
На первой строке подаётся целое число N (2 <= N <= 106).
Далее на N строках подаются данные каждого ученика: его имя, координата X, координата Y, все через пробел (координаты всегда целые).
Координаты в диапазоне от -104 до 104.
Выходные данные
Вывести на одной строке через пробел два имени учеников, которые наиболее приближены друг к другу на всём поле, чем все остальные. Имена выводить в алфавитном порядке.
Примечание:
·имена учеников всегда на английском языке для удобстваобработки;
·имена учеников всегда состоят только из одного слова итолько из букв латинского алфавита, без спецсимволов и прочих знаков;
·на одной координате не может быть двух учениководновременно;
·если пар подходящих для ответа несколько, то вывести ту,которая максимально приближена к координате (0;0);
·если и таких пар несколько, то вывести любую.

 Как вывести числа?

Числа можно писать без кавычек — Python их распознаёт сам.
Кроме чисел можно также выводить результат арифметического выражения.
При записи дробных чисел, необходимо целую и дробную часть разделять точкой.

Примеры:

print(10) # Выведет: 10
print(5 + 3) # Выведет: 8
print(2.5 + 1.5) # Выведет: 4.0

 

Задание

Выведите на экран самое большое число, которое только сможете придумать! А потом попробуйте придумать число ещё больше и проверить, сможет ли Python его напечатать.
 
Примечание

С точки зрения языка Python ограничений нет. Можно написать число любой величиной. Но на практике ограничение накладывает объём оперативной памяти компьютера. Если число такое большое, что для его хранения нужно больше памяти, чем есть у компьютера, программа аварийно завершится.

Поэтому "любое число" на практике — это "любое число, которое помещается в памяти компьютера" (в данном случае нашего сервера, который проверяет вашу программу)

Напишите программу, которая выводит на экран ASCII-изображение кота:

Это мой кот!
=^_^=


Обратите внимание, что форматирование и пробелы должны быть точными. ASCII-изображение состоит из двух строк. В первой строке 12 символов. Во второй - 5 символов.
65998#65998
Профессор Чадов и аспирант Шлёпов оптимизируют производство октогена. Одним из важных компонентов для создания этой мощной взрывчатки является азотная кислота. Чтобы как можно меньше таскать сосуды с кислотой, лаборанты попросили аспиранта Шлёпова написать программу, которая будет рассчитывать, какие емкости надо принести со склада в лабораторию, чтобы выполнялись несколько условий:
  1. Объем азотной кислоты должен быть не меньше требуемого для работы;
  2. Объем азотной кислоты в лаборатории должен быть минимально возможным;
  3. При прочих равных следует предпочесть переноску меньшего количества емкостей;
Напишите программу, которая поможет лаборантам.

Формат ввода
В первой строке программы вводится натуральное число N (N ≤ 20) – количество емкостей с кислотой. Во второй строке указывается натуральное число V (0 ≤ V ≤ 200 л) – ограничение по объему. Далее в N строчках вводится по одному натуральному числу vi (vi ≤ 20 л) – объем емкости под номером i.
Формат вывода
Вывести в одной строке через пробел в порядке возрастания объемы емкостей, которые надо отнести в лабораторию, уложившись в заданные условия. Если это невозможно, вывести 0.
65996#65996
На курсы по изучению Python записалось N (0<N <= 100) человек. Необходимо составить расписание занятий. Для этого необходимо определить дни, когда на занятиях сможет присутствовать максимальное количество учащихся. Каждый учащийся заполнил специальную анкету, где указал дни, в которые он может посещать курсы. Пожелания были двух типов.
1) Дни недели. Обозначение: строка начиняется с буквы “w”; далее идет цепочка цифр без пробелов: 1 – понедельник, 2 – вторник, 3 - среда, 4 – четверг, 5 – пятница, 6 – суббота, 7 - воскресенье. Например, в строке “w134” – закодировано, что учащийся может проходить обучение по понедельникам (1), средам (3) и четвергам (4).
2) Чётные/нечётные даты. Обозначение: строка начиняется с буквы “d”; далее идет одна цифра: 1 – нечётные даты, 0 – чётные даты. Например, в строке “d1” – закодировано, что учащийся может проходить обучение по нечетным датам (1, 3, 5, 7, …, 29, 31).
Каждый учащийся высказал пожелание только одного типа.
Необходимо определить, сколько дней в период обучения таковы, что на занятиях может присутствовать максимальное количество учащихся.
Гарантируется, что дата начала меньше даты окончания обучения, что обучение начинается не ранее 1 января 2023 года. Период не превышает двух календарных лет. 01.01.2023 – воскресенье (остальные дни недели должна определять программа).

Входные данные:
Построчно.
Дата начала интервала обучения в формате dd.mm.yyyy
Дата окончания интервала обучения (включая этот день) в формате dd.mm.yyyy
N – количество учащихся.
В каждой последующей строчке закодированы пожелания учащихся (формат смотри выше).
Выходные данные:
Два числа через пробел.
Количество дней с максимальным количеством учащихся, планирующих посетить занятия.
Планируемое максимальное количество учащихся на занятии.
Примеры
Входные данные Выходные данные Примечание
1 02.01.2023
16.01.2023
5
w134
d0
w123
w15
d0
2 5 Все пятеро учащихся смогут присутствовать на занятиях 2 и 16 января 2023 года (два дня).
2 02.01.2023
16.01.2023
5
w134
d0
w123
w15
d1
3 4 На занятиях максимально может присутствовать только четверо из пятерых учащихся. Даты, когда это возможно: 2, 9 и 16 января 2023 года (три дня).
3 10.01.2023
13.01.2023
5
w135
d1
w13
w15
d1
2 4 А 11 и 13 января будет максимальное количество человек - 4 (два дня).
65994#65994
Группа исследователей управляет зондом. Команды установленному на зонде фотоаппарату подаются вместе с блоком иной информации. Каждый блок представляет собой набор цифр в шестнадцатеричной системе счисления (0123456789ABCDEF). Команда вычисляется на основе последней цифры троичной записи суммы цифр блока:
0: «Снимок».
1: «Снимок со вспышкой»
2: «Очистить память» – очищает память зонда, удаляя все сохраненные фотографии.
Определите максимальное количество фотографий, которые были единовременно удалены из памяти после выполнения n команд.

Формат ввода
В первой строке программе подается на вход число натуральное число n, не превышающее 1000.
Далее в каждой из n строк идет команда – набор цифр в шестнадцатеричной системе счисления (0123456789ABCDEF), длина команды не превышает 100 знаков.
Формат вывода
Вывести одно число – максимальное количество фотографий, которые были единовременно удалены из памяти после выполнения n команд.
65992#65992
Город имеет форму круга радиуса R с центром в точке (0,0).
Сеть метро состоит из N линий метро (часть линий или все проходят через город).
Линия метро - ломаная из отрезков прямых, вершины которых имеют целочисленные координаты. Линия метро не имеет самопересечений и может быть замкнутой. Во всех точках с целочисленными координатами, через которые проходят линии метро расположены станции метро .
Для каждой точки с целочисленными координатами определим параметр вес вершины. Вес вершины — это количество станций метро, расстояние до которых не более 1 (длины клетки).
Город разбит на кварталы. Квартал — это единичная клетка с целочисленными координатами вершин, хотя бы одна из которых находящаяся строго внутри города.
Для каждого квартала определим параметр доступность. Доступность квартала равна сумме весов вершин квартала (вершина квартала может быть вне города)
Найдите значение "доступности" для каждого квартала. Для каждой полученной "доступности" определите число кварталов, имеющих эту доступность.
Входные данные
В первой строке заданы значения R, N (4<R<201, 0<N<1001)
В следующих N строках заданы описания линий метро.
Каждая линия описывается следующим образом:
первое число в строке M равно количеству вершин ломаной, далее даны координаты вершин (по два числа на вершину).
Замкнутые ломаные определяются тем, что координаты начальной и конечной вершины совпадают.
Выходные данные
В первой строке выведите число K - количество различных значений "доступности" (включая нулевую).
В следующих K строках выведите по два числа - значение "доступности" и число кварталов, имеющих такое значение "доступности"

Примеры:

 
 
Входные данные Выходные данные Примечание
1 5 3
6 2 -4 -2 -4 -4 0 0 4 4 0 2 -4
4 -6 3 0 -1 2 -1 5 -4
3 5 4 0 -1 -6 -4
14
0 3
1 1
2 4
3 8
4 10
5 9
6 12
7 11
8 13
9 5
10 6
11 3
12 2
13 1
Город (рис. 1,2) расположен в круге радиуса 5 с центром в точке (0,0).
Сеть метро состоит из 6 линий метро (2 радиальных, 1 кольцевая):
6 2 -4 -2 -4 -4 0 0 4 4 0 2 -4 - кольцевая линия из 5 звеньев, 16 станций
4 -6 3 0 -1 2 -1 5 -4 - радиальная линия из 3 звеньев, 8 станций
3 5 4 0 -1 -6 -4 - радиальная линия из 2 звеньев, 9 станций
Есть три пересадки ( в вершинах (-3,1), (0,-1), (3,-2))
На рис.1 отмечены вершины, которые не являются станциями и
имеют не нулевой вес (треугольник - вес 1, крестик - вес 2, ромб - вес 3)
На рис.2 для всех городских кварталов указано значение параметра
доступности квартала.


 
65986#65986
На кафедре работает N (0<N <= 100) человек. Необходимо составить расписание дежурств по кафедре. Для этого необходимо определить в первую очередь проблемные рабочие дни (рабочими днями считаются все дни недели, кроме воскресенья), когда запланированных занятий ни у кого из сотрудников нет. Кроме того, важно знать дни, когда сотрудников на кафедре очень мало, поэтому помещение может быть закрыто (например, преподаватель ушел в аудиторию читать лекцию).
Для каждого сотрудника есть рабочее расписание. Расписание двух типов. Каждое кодируется особым образом.
  1.  Преподаватели работают по дням недели. Обозначение: строка начиняется с буквы “P”; далее идет цепочка цифр без пробелов: 1 – понедельник, 2 – вторник, 3 - среда, 4 – четверг, 5 – пятница, 6 – суббота. Например, в строке “P134” – закодировано, что преподаватель ведет занятие по понедельникам (1), средам (3) и четвергам (4).
  2.  Учебный персонал работает в зависимости от чётности/нечётности даты. Обозначение: строка начиняется с буквы “U”; далее идет одна цифра: 1 – нечётные даты, 0 – чётные даты. Например, в строке “U1” – закодировано, что лаборант работает по нечетным датам (1, 3, 5, 7, …, 29, 31).
Необходимо определить, сколько проблемных дней в период, на который составляется расписание.
Гарантируется, что дата начала меньше даты окончания периода, что дежурства начинаются не ранее 1 января 2023 года. Период не превышает двух календарных лет. 01.01.2023 – воскресенье (остальные дни недели должна определять программа).
Воскресенье – выходной для всех!

Входные данные
Построчно.
Дата начала периода в формате dd.mm.yyyy
Дата окончания периода (включая этот день) в формате dd.mm.yyyy
N – количество сотрудников.
В каждой последующей строчке закодированы персональные расписания преподавателей и учебного персонала (формат смотри выше).
Выходные данные
Число - количество дней, когда на кафедре никого нет.
На следующей строке – два числа через пробел: сколько дней на кафедре присутствует минимальное количество сотрудников и само минимальное количество сотрудников, когда кто-то есть на кафедре.
Примеры
Входные данные Выходные данные Примечание
1 09.01.2023
23.01.2023
5
P135
U0
P123
P15
U0
2
1 1
На кафедре никого не планируется 19 и 21 января 2023 года (два дня). Обратите внимание, что воскресенья не считаются!
А 17 января будет только один человек (один день).
2 09.01.2023
23.01.2023
5
P135
U0
P123
P15
U1
0
4 1
Каждый рабочий день на кафедре кто-то есть.
Минимальное количество людей на кафедре 1 человек. Таких присутственных дня четыре: 12, 14, 18 и 21 января.
3 10.01.2023
13.01.2023
5
P135
U1
2
2 4
На кафедре никого не планируется 10 и 12 января 2023 года (два дня).
А 11 и 13 января будет минимальное количество человек - 4 (два дня).
65960#65960
Старшеклассник Миша собирает робота, который должен передвигаться по рельсам вокруг испытательного стенда. Всего робот умеет выполнять 13 различных команд, но для нас представляют интерес три из них – «вперёд», «назад», «стой». Миша решил передавать роботу инструкции в виде цифр числа: робот получает число, переводит его в систему счисления с основанием 13 и выполняет соответствующие цифрам команды. Коды команд, отвечающих за изменение скорости робота, кратны шести.
На вход подаётся N чисел с наборами команд. Сколько раз робот изменит скорость, если считать, что он не встречает препятствий?

Формат ввода
На вход программе в первой строке подается натуральное число N (N ≤ 10000) – количество наборов команд. Далее в N строках на вход подаётся по одному целому числу в диапазоне от 0 до 4*109 – набор тринадцатеричных команд, записанных в десятичной системе счисления.
Формат вывода
Вывести одно целое число – сколько раз робот изменит скорость.
65959#65959
На уроке информатики Фоме задали задачу о проверке гипотезы Гольдбаха.
Условие задачи выглядело так:
Гипотеза Гольдбаха (не доказанная до сих пор) утверждает, что любое четное число (кроме 2) можно представить в виде суммы двух простых чисел.
Фома легко решил данную задачу методом поиска "первого решения".
Дома, Фома заметил, что во время отладки, он получал решения, в которых одно из чисел было не очень большим.
Так, для числа 1000000, он получил разложение 1000000=17+999983. Фома решил проверить, в чем сложность гипотезы Гольдбаха.
Для этого Фома придумал задачу:
Определим функцию g(n) = количеству разложений числа n в сумму двух простых чисел. (разложения, отличающиеся порядком слагаемых, считаются одинаковыми).
На отрезке натуральных чисел от A до B найдите чётное число x такое, что: g(x) кратно 5 и имеет минимальное значение среди всех g(x) кратных 5 на этом отрезке.
Решите задачу Фомы.

Входные данные
Границы отрезка A, B (два натуральных числа 5≤ A<B≤106 )
Выходные данные
- "Impossible" если для всех чётных x из отрезка [A;B] значение g(x) не кратно 5.
- два числа - x, g( x ) ( g(x) кратно 5 и минимальное для A≤ x≤B). Если таких x несколько, то выведите минимальное значение x.
Примеры
Входные данные Выходные данные Примечание
1 5 10 Impossible На отрезке всего три четных числа (6, 8, 10)
Число 8 =3+5 и других представлений нет (5+3 считается таким же как 3+5)
Для 10 есть два представления (3+7 и 5+5)
Таким образом значений x, при которых g(x) кратно 5 нет.
2 20 60 48 5 g(x) может принимать значения меньшие 3 (g(20)=2)
g(x)=5 для x из множества {48, 54}. 48 -минимальное значение
3 2000 2005 Impossible  
65822#65822
Заданы два различных целых положительных числа a и b, записанные в восьмеричной системе счисления. Оба числа двузначные. В условии данной задачи в двузначном числе старшая цифра может быть и нулем.
В двузначном числе за один ход разрешается заменить любую цифру на сумму цифр по модулю 8 (остаток от деления суммы цифр на 8). Построить цепочку ходов минимальной длины, которая переводит a в b. Если существует несколько цепочек минимальной длины, то выбрать ту из них, в которой сумма всех чисел максимальна (числа a и b являются частью цепочки). В качестве ответа записать сумму чисел в найденной цепочке. Результат записывается в десятичной системе счисления. В случае невозможности построить цепочку вывести число 0.

Формат входных данных
На вход программе подается строка, содержащая два целых положительных восьмеричных двузначных числа a и b, записанные через пробел.
Формат выходных данных
Вывести целое десятичное число – сумму чисел в найденной цепочке.
Поделиться
Класснуть