Язык программирования

3 082 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: ✓ успешные, ✗ неуспешные.
66172#66172
Белочка живет в дубовом парке. Каждый день до обеда она собирает ровно К желудей и складывает их в дупле одного из дубов. Последнее время вечером каждого воскресенья в парк приходит мальчик Витя. Он обнаружил дупло, в котором белочка хранит жёлуди. Для своих игр он каждый раз забирает Т желудей из дупла.
Известно, что после последнего прихода Вити в парк, в дупле осталось Х желудей. Необходимо определить через сколько дней после этого прихода Вити, белочка сможет собрать не менее М желудей в дупле.

Формат ввода
На вход программе в одной строке подается четыре целых числа, записанные через пробел К, M, Т, Х (1≤ К, M, Т, Х ≤109).
Формат вывода
Вывести одно целое число – количество дней, через которое белочка сможет собрать необходимое число желудей.
Если белочка не сможет собрать нужное число желудей никогда, вывести число -1.
66153#66153
Иван Фёдорович сыщик с очень большим стажем. Однажды в городе произошла серия больших ограблений. На местах ограбления не было обнаружено ни улик, ни зацепок. Однажды грабителей практически застали врасплох, но они смогли скрыться. На месте преступления Иван Фёдорович заметил, что грабители обронили папку с листком и набором картонных карточек, с вырезанными окошками на этих картах. Придя в офис и рассмотрев улики подробнее, было замечено, что на листке напечатана прямоугольная матрица, состоящая из цифр, а карточки все были размером с матрицу, притом отверстия, вырезанные в карточках, отображали какие-то случайные цифры из матрицы.
Иван Фёдорович вспомнил, что когда-то сталкивался с подобной схемой обозначения мест ограбления, что карточки помогали определить координаты следующего места ограбления. Потому Иван Фёдорович решил выписать координаты всех мест преступлений в виде долготы и широты, а далее найти карточки, которые соответствуют координатам следующих мест преступлений.
Помогите ему быстрее найти преступников, определив координаты следующих мест преступлений.
Координаты преступления собираются при помощи карточки следующим образом:
  • на матрицу накладывается карточка;
  • далее двигаясь по каждой строке по порядку слева-направо, выписываются цифры, которые попали в прорези;
  • цифр всегда 18, притом координаты всегда состоят из 8цифр (две целой части, шесть вещественной), значит два символа игнорируются и обозначают точку в вещественном числе в соответствующем порядке.
Пример матрицы и карточки (где белые участки – это вырезы (отверстия)).

Таким образом начинаем выписывать цифры по строкам слева-направо: 554755831378617673. Знаем, что цифр обозначающих координату 8, а две лишние – обозначающие запятые, получим координаты 55.755831 37.617673.
Также на каждой карточке Иван Фёдорович заметил на углу пометку, которая, как позднее он понял, определяет, как должна быть развёрнута карточка, так как метка должна при наложении всегда находиться в левом верхнем углу при взгляде на неё:
  • 1 – метка в левом верхнем углу карточки;
  • 2 – метка в правом верхнем углу карточки;
  • 3 – метка в правом нижнем углу карточки;
  • 4 – метка в левом нижнем углу карточки.
Входные данные
на первой строке подаётся целое число K (2 <= K <= 100) – количество преступлений, которые совершили грабители;
далее на K строках подаются координаты предыдущих мест преступлений в виде вещественных чисел с точкой, разделённых пробелом (например, 55.755831 37.617673)
на следующей строке подаются размеры матрицы и карточек в виде целых чисел N, M (5 <= N,M <= 1000), где N – количество строк матрицы, а M – количество столбцов;
далее на N строках подаются по M цифр матрицы;
после подаётся на новой строке целое число – количество карточек L (K < L <= 100); 
далее подаётся на одной строке L цифр от 1 до 4 через пробел, которые отображаются метки карточка в соответствии с порядком их появления;
затем L раз по N строк и M цифр подаются карточки по порядку их появления, которые содержат либо цифру 1 – обозначающую наличие прорези на ней, либо 0 – если прорези в этом месте на карточке нет.
Выходные данные
выведите все координаты будущих мест преступлений (каждую с новой строки), отсортировав их по возрастанию (если две координаты одинаковые по первой координате, то сортировать по возрастанию по второй), координаты одного места выводить через пробел.
Примечание:
·при выводе дробной части координат выводить всегда 6 знаков, если знаков меньше, то дополнять их незначащими нулями;
·если матрица прямоугольная, то гарантируется, что при совмещении метки на карточке с левым верхним углом матрицы, карточка совпадёт с размером матрицы;
·данные на карточках нельзя отзеркаливать (переворачиватькарточки не в плоскости OXY);
·гарантируется, что если даны метки на карточках, то при повороте карточка совпадёт с размером матрицы, не будет такого, что карточка будет иного размера, чем матрица.
66151#66151
Коля очень мечтал поступить в лучший ВУЗ – МГТУ им. Н.Э. Баумана и у него это получилось. Однако, ему не хватило 1 балла для того, чтобы ему предоставили общежитие, потому ему придётся добираться до института на электричках, благо институт находится не только у метро, но и у станции электричек, от которой идти всего 20 минут пешком.
Коля очень пунктуальный мальчик, потому, он каждый раз вечером садится и выписывает расписание электричек на следующий день, чтобы понять, как ему лучше всего добраться до института, чтобы успеть к нужной паре. Но есть проблема, Коле приходится добираться на нескольких электричках, так как он живёт уж очень далеко.
Коля хоть и пунктуальный мальчик, но он, как и все, очень любит поспать, поэтому он решил рассчитать во сколько он доберётся до института в самом оптимистичном случае.
Стоит учесть тот момент, что иногда электрички сбиваются с расписания и могут прийти раньше до 10 минут (включительно), но время в пути у них неизменно.
Помогите Коле рассчитать, во сколько ему нужно встать, по самому оптимистическому сценарию, чтобы приехать к паре вовремя, если известно время начала пары и расписание электричек на каждой станции, с которой он будет отправляться.

Входные данные
На первой строке задаётся время начала пары, к которой Коля должен успеть в формате (hh:mm).
На второй строке задаётся количество станций, с которых будет отправляться Коля (1 <= N <= 10).
На третьей строке задаётся N целых чисел через пробел (1 <= M_1, M_2, …, M_n <= 20) – количество отправлений поездов для каждой станции.
Далее следует N блоков данных по M строк в каждой из которых задано время отправления электрички со станции по расписанию и время в пути до нужной Коле станции (через точку с запятой) (например, 12:10;30, что означает, что электричка отправляется в 12:10, в пути она 30 минут.
Выходные данные
Вывести на одной строке время в формате hh:mm (например, 08:10 или 12:13), в которое Коля должен быть уже на первой станции электричек, чтобы отправиться в институт, притом в самом оптимистичном варианте.
Примечание:
•на вход подаются расписания электричек со станций в порядке,в котором Коля должен на них прибывать;
•гарантируется, что Коля 100% может успеть на пару вовремя.

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

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

Примеры:

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

 

Задание

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

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

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

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

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


Обратите внимание, что форматирование и пробелы должны быть точными. ASCII-изображение состоит из двух строк. В первой строке 12 символов. Во второй - 5 символов.
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 (два дня).
65995#65995
В ходе игры «Зарница» Витя и Паша пересылают друг другу важные сообщения. Но для того, чтобы противник не смог их понять, сообщения кодируются. Для кодирования информации ребята используют латинский алфавит из 26 букв, все буквы заглавные. Слова кодируются следующим образом. Каждая буква в слове заменяется ее порядковым номером в алфавите, записанном в системе счисления с основанием Sys (2 <= Sys <= 36). Все полученные числа записываются подряд без пробелов. Если числа (порядковые номера букв) в заданной системе счисления могут иметь разную длину, то более короткие числа дополняются слева нулями до требуемой длины. Например, в десятичной системе счисления порядковый номер буквы A будет равен 1, а буквы Z – 26. Соответственно, при шифровании, к единице слева будет дописан ноль. То есть код буквы A будет 01, а код буквы Z – 26. Для усложнения возможной расшифровки сообщения противником, при кодировании разных слов, могут использоваться различные системы счисления. Основание использованной системы счисления, выраженное двухзначным десятичным числом дописывается справа к коду всего слова.
Например, слово AZ, при использовании десятичной системы счисления, будет закодировано как 012610, а при использовании троичной системы счисления будет закодировано как 00122203.

Напишите программу, которая будет расшифровывать закодированные сообщения.
На вход программе подается одно закодированное сообщение. Длина сообщения не более 100 символов. Программа должна вывести исходное слово.
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 (два дня).
65985#65985
В ходе игры «Зарница» Саша и Женя пересылают друг другу важные сообщения. Но для того, чтобы противник не смог их понять, сообщения кодируются. Для кодирования информации ребята используют латинский алфавит из 26 букв, все буквы заглавные. Слова кодируются следующим образом. Каждая буква в слове заменяется ее порядковым номером в алфавите, записанном в системе счисления с основанием Sys (2 <= Sys <= 36). Все полученные числа записываются подряд без пробелов. Если числа (порядковые номера букв) в заданной системе счисления могут иметь разную длину, то более короткие числа дополняются слева нулями до требуемой длины. Например, в десятичной системе счисления порядковый номер буквы A будет равен 1, а буквы Z – 26. Соответственно, при шифровании, к единице слева будет дописан ноль. То есть код буквы A будет 01, а код буквы Z – 26. Для усложнения возможной расшифровки сообщения противником, для кодирования букв, стоящих на разных местах в слове, используются различные системы счисления. Основание использованной системы счисления выбирается исходя из порядкового номера буквы в кодируемом сообщении. Для кодирования первой буквы сообщения используется двоичная система счисления, для второй – троичная, для третьей – четверичная и т.д., до системы счисления с основанием 36 включительно. Далее основания систем счисления повторяются циклически – 2, 3, 4, …36, 2, 3, … Например, слово AZ, будет закодировано как 00001222.
Напишите программу, которая будет расшифровывать закодированные сообщения.
На вход программе подается одно закодированное сообщение. Длина сообщения не более 200 символов. Программа должна вывести исходное слово.
65983#65983
Химики смешивают несколько добавок к топливу и проверяют, при какой температуре смесь превысит заранее заданное давление. Для этого смесь нагревают в химическом реакторе. Лаборант, которого оставляют следить за реактором, пишет в текстовый файл температуру смеси, которую измеряет раз в минуту. Когда давление превышает заданное значение, процесс прекращается, реактор охлаждают и загружают новую смесь. Определите, сколько длился самый долгий нагрев смеси. При нагреве, что очевидно, температура смеси не уменьшается.

Формат ввода
На вход программе в первой строке подается натуральное число N, не превышающее 10000 – количество замеров температуры.
Во второй строке подается натуральное число X, не превышающее 1000 – пороговое значение температуры.
Далее в N строках подается по одному натуральному числу ti, не превышающему 1000 – температура смеси при измерении номер i.
Формат вывода
Вывести одно целое число – сколько минут длился самый длительный нагрев смеси.
65982#65982
Электронная схема состоит из элементов И и НЕ.
Элемент НЕ имеет один вход и один выход. Принцип его работы следующий: если на входе появится сигнал 0, то через 1 мс на выходе установится сигнал 1, а если на входе 1, то через 1 мс на выходе установится сигнал 0.
Элемент И имеет два входа и один выход. Если на обоих его входах появится сигнал 1, то через 1 мс на выходе установится сигнал 1. Если хотя бы на один из входов поступает 0, то через 1 мс на выходе устанавливается сигнал 0.
Все точки подсоединения элементов пронумерованы. Если в точку поступает сигнал с выходов нескольких элементов, то в этой точке сигнал равен 0 тогда, когда со всех выходов поступает сигнал 0. Если с одного или нескольких выходов, подсоединенных в одной точке, поступает сигнал 1, то в этой точке устанавливается сигнал 1. В последних двух случаях сигнал устанавливается мгновенно (без задержки).
Известно состояние (сигнал 0 или 1) каждой точки в момент включения схемы. Необходимо выдать состояние некоторой указанной точки К в течение первых T мс с момента включения схемы.
В точках, которые соединены только с входами элементов, сигнал остается неизменным с момента включения схемы до окончания ее работы.
Формат ввода
На вход программе в первой строке подаётся натуральное число N. Далее идет N строк, каждая из которых содержит несколько целых десятичных чисел, отделенных друг от друга одним или несколькими пробелами. Первое число в строке показывает, что именно описывают оставшиеся числа данной строки:
0 - описание точки соединения;
   0 m n - точка с номером m имеет в момент включения состояние n (0 или 1)
1 - описание элемента НЕ;
   1 x y - элемент НЕ, вход которого соединен с точкой под номером x, а выход - с точкой под номером y
2 - описание элемента И;
   2 x y z - элемент И, один вход которого соединен с точкой под номером x, второй вход соединен с точкой под номером y, а выход - с точкой под номером z
3 - описание задания.
   3 K T - необходимо выдать состояние точки K в течение первых T мс с момента включения схемы.
Формат вывода
T строк: первая строка - состояние точки K в первую мс, вторая строка - состояние точки K во вторую мс, и так далее до T мс.

Пример
Пусть имеется схема, приведенная на рисунке. Необходимо выдать состояние точки 3 в течение 5 мс с момента включения схемы.
65823#65823
Аспирант Шлёпов собирается провести чемпионат вуза по шахматам. Так как игроков в вузе много, у сообщества есть свой рейтинг ELO. Шлёпов собирается разделить игроков на основании этого рейтинга на две лиги. В высшей лиге должно играть не менее трети игроков, но при этом наименьшее возможное количество; отбор в лигу идёт на основании ELO. Двух игроков с одинаковым ELO распределять в разные лиги нельзя. Высшая лига на турнире должна быть обязательно. Определите, начиная с какого ELO, игроки попадают в высшую лигу.

Формат входных данных
На вход программе в первой строке подаётся натуральное число N (N ≤ 1000) – количество игроков. Далее в N строках идёт по одному натуральному числу ki – рейтинг ELO игрока номер i (1 ≤ ki ≤ 2500).
Формат выходных данных
Выведите одно целое число – ELO, начиная с которого, игроки попадают в высшую лигу. Если в высшей лиге окажется весь турнир, надо вывести наименьший ELO среди заявленных игроков.

Пояснение
Всего пять игроков, значит, в высшей лиге должно быть не меньшедвух. 1750 – точно в высшей лиге. 1600 надо брать в высшую лигу, но их два. Значит, оба идутв высшую лигу, после чего она набрана.
 
65819#65819
Находясь в агрессивной среде аппарат, снабженный целым комплексом датчиков, мониторит сразу несколько параметров. Необходимо написать программу анализа для параметра F. Этот параметр принимает целые значения. Задан диапазон допустимых значений [X; Y] (границы отрезка тоже являются допустимыми значениями). Каждую минут снимаются показания с датчика F. После выключения оборудования датчик показывает 0. Это значение в серию измерений уже не включается. Необходимо посчитать наибольшее отклонение от допустимых значений и сколько раз за время наблюдения оно было зафиксировано.

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

Примечание
В данном примере 11 измерений. Максимальное отклонение 2 от заданного допустимого диапазона [-4; 11] будет достигнуто 3 раза на значениях -6, 13 и 13
|-6 – (-4)| = |13 – 11| = 2
65816#65816
В сказочном мире Геомаба живут необычные существа в виде прямоугольников. Все они разного размера, но передвигаются все они одинаково –перекатыванием сбоку на бок. В очередной из дней жители Геомаба решиливыбрать себе мэра, так как дороги в их мире очень опасные – в них очень многоям и в них легко застрять, так как жители-прямоугольники могут передвигатьсятолько по плоским дорогам.
Мэр решил незамедлительно собрать группу добровольцев и направить их по дорогам Геомаба, но дорог так много, что Мэр понял, что отправлять добровольцев, а потом вытаскивать их из ям – дело трудозатратное, потому он обратился к Вам за помощью – написать алгоритм, который по размеру прямоугольника покажет все ямы, которые необходимо залатать, чтобы житель-прямоугольник смог спокойно передвигаться по дороге, а город потратил минимально ресурсов (заделал как можно меньше ям).
Прямоугольник считается застрявшим, если он не смог беспрепятственно перекатиться через яму (его угол попал в яму (не включая начало и конец ямы)).
Если прямоугольник попал не углом в яму, а попал точно стороной на границы ямы, то он не считается застрявшим.

Формат входных данных
На вход на первой строке подаётся число X (1 <= X <= 100000) – длина дороги в метрах.
На второй строке подаются числа W, H (1 <= W,H <= 100) – высота и ширина жителя-прямоугольника в метрах соответственно.
На третьей строке подаётся число N (1 <= N <= 1000) – количество ям на дороге.
Далее на N-строках подаются координаты начала ямы (в метрах от начала дороги) и её ширина в виде целых положительных чисел от 1 до X. Координаты ям могут подаваться в любом порядке. Но все ямы не пересекаются и не накладываются.
Формат выходных данных
Выведите на первой строке количество ям, которые необходимо заделать, чтобы житель-прямоугольник, для которого производится расчёт, смог добраться до конца дороги.
Далее выведите координаты всех ям отсортированные в порядке появления от начала дороги до конца, КАЖДУЮ С НОВОЙ СТРОКИ.

Примечание
Житель-прямоугольник перед стартом дороги находится так, что три его вершины находятся за пределом начала дороги, а одна вершина, являющаяся самой правой, стоит на позиции 0. Первоначальное положение жителя-прямоугольника может быть любым, нужно выбрать оптимальное, чтобы залатать как можно меньше ям.
Если решений несколько, выведите то, в котором сумма координат ям для залатывания наименьшая.

В данном случае житель может стоять основанием перед началом дороги на стороне 2 (положение №1) или 3 (положение №2).
Если он стоит на основании длиной 2, то он попадёт только в яму под номером 14.
Если он стоит на основании длиной 3, то он попадёт в ямы 10 и 14.
Городу выгоднее заделать только одну яму, под номером 14.

Положение №1.


Положение №2.

 
65815#65815
В школе №1920 решили провести соревнование по написанию небольших игр среди школьников. Первым критерием данного соревнования было условие того, что в игре нельзя заранее рассчитать результат зная входные данные.
Коля написал игру, в которой задаётся квадратная матрица, состоящая из целых чисел, но не содержащая нулей. Суть игры в том, что в неё играют два участника и каждый может сделать одно из следующих действий:
1.Повернуть матрицу на 90 градусов по часовой стрелке
2.Повернуть матрицу на 90 градусов против часовой стрелке
3.Повернуть матрицу на 45 градусов по часовой стрелке (если есть нули,то они схлопываются (см. пример))
4.Повернуть матрицу на 45 градусов против часовой стрелке (если естьнули, то они схлопываются (см. пример))
У игроков есть ограниченное чётное количество ходов. Каждый из игроков ходит по очереди. Победой в игре считается сумма чисел на ближайшей стороне матрицы, которая находится ближе к игроку. Если матрица в конце повёрнута на 45 градусов, то результатом берётся ближайший угол матрицы к каждому из игроков (одно число в вершине).
Помогите Коле написать алгоритм, который будет по входной матрице и порядку действий ребят определять сколько очков набрал игрок №1 и игрок №2.
Поворот квадратной матрицы на 45 градусов по часовой стрелке будет выглядеть следующим образом.

Формат входных данных
На вход первой строкой подаются число N (1 <= N <= 1000) – размер исходной сгенерированной квадратной матрицы (N – количество строк). Далее на N строках подаются по N целых чисел (кроме нуля).
Далее подаётся число K (2 <= K <= 100, K – чётное)– количество ходов у игроков.
На последующих K-строках вводятся команды, которые выбрали ребята (от 1 до 4), где первая команда соответствует первому игроку (сидящему слева), следующая команда второму (сидящему справа) и так далее.
Формат выходных данных
Вывести на одной строке через пробел результат игры для первого игрока и для второго.

Примечание:
1 2 3
4 5 6
7 8 9

1 команда (повернуть на 90 градусов по часовой стрелке)
7 4 1
8 5 2
9 6 3

2 команда (повернуть на 45 градусов по часовой стрелке)
0 0 7 0 0
0 8 0 4 0
9 0 5 0 1
0 6 0 2 0
0 0 3 0 0

3 команда (повернуть на 90 градусов по часовой стрелке)
0 0 9 0 0
0 6 0 8 0
3 0 5 0 7
0 2 0 4 0
0 0 1 0 0

4 команда (повернуть на 45 градусов против часовой стрелке (нули схлопываются))
9 8 7
6 5 4
3 2 1
Первый игрок находится слева, значит ячейки, которые идут ему в счёт 9 + 6 + 3.
Для второго игрока справа 7 + 4 + 1.
 
65814#65814
Маша работает в очень крупной IT-компании, притом полностью удалённо. Маша поняла, что сидячая работа – это очень тяжело, поэтому прикупила себе недорогой гребной тренажёр. Но так как тренажёр недорогой, то Маша прочитав инструкцию поняла, что он имеет ограничения по времени работы и простоя. Таким образом, на тренажёре можно заниматься только 20 минут максимум, а потом нужно чтобы тренажёр «отдыхал» минимум 10 минут.
Маша решила посчитать, сколько минут она сможет прозаниматься на тренажёре за день, если будет знать все свои промежутки времени, когда она не может заниматься на тренажёре 100%.
Работает Маша с 10:00 по 19:00, потому в подсчёт идёт только время проведённое на тренажёре именно в этот промежуток времени.
Формат входных данных
На вход на первой строке подаётся число N (1<=N<=1000) – количество занятых промежуток Маши.
Далее на N строках указываются промежутки в виде времени начала и времени конца занятого времени в формате h:mm-h:mm (например, 9:12-9:20) в хронологическом порядке.
Формат выходных данных
Выведите на одной строке количество минут, которые Маша проведёт на тренажёре в этот день, если она будет заниматься сразу же, как тренажёр «отдохнул».
Примечание: если тренажёр включили меньше чем на 20 минут, то на отдых ему требуется также 10 минут.
✓ 41✗ 354700средняяВойти и решать
65812#65812
Ваня очень дружелюбный мальчик, поэтому у него очень много друзей. Ваня рад этому, но вот делиться, если он что-то купил, приходится со всеми. Потому Ваня придумал очень гениальный план. Когда его спрашивают, что он купил, при выходе с магазина, он хочет называть только те продукты, которыми ему не жалко поделиться.
Продукты, которыми не жалко поделиться, это продукты, которых Ваня купил минимум K//2 (целочисленное деление K на 2), где K – количество друзей, которые встретили Ваню у магазина.
Определите, какими продуктами Ваня поделится в этот раз с ребятами.

Формат входных данных
На вход в программу на первой строке подаётся K – количество друзей, которые встречают Ваню у магазина (1 <= K <= 10000).
На второй строке подаётся N (1 <= N <= 1000000) – количество продуктов, которые купил Ваня.
Далее, на N строках указаны названия продуктов (одно слово английскими буквами), купленных Ваней, притом продукты, которые были куплены более чем в количестве 1 штуки, идут подряд. Если Ваня купил Apple 3 штуки, то Apple будут идти подряд. Но продукты не отсортированы по алфавиту!

Формат выходных данных
На выходе необходимо вывести в отсортированном по алфавиту порядке названия всех продуктов (каждое название на новой строке), которыми поделится Ваня. Если Ваня не поделится с ребятами продуктами, то вывести «NO» заглавными буквами.
✓ 97✗ 199400лёгкаяВойти и решать
3#65794
Коля – мальчик с очень принципиальными взглядами на некоторые вещи в своей жизни. Один из таких взглядов – это выбор времени, на которое он поставит будильник. Он каждый раз заранее знает в какой промежуток времени ему нужно завести будильник, дальше он поминутно расписывает все возможные варианты из диапазона на которое может поставить будильник и начинает оценивать каждое время по некоторым правилам и начислять баллы (за каждый пункт время получает +1 балл):
  • если число минут представляет собой простое число;
  • если он поспит с момента засыпания до пробуждения минимум 5циклов сна, где 1 цикл равен 90 минутам;
  • если сумма цифр часа и минут пробуждения нечётное число(10:02 = 1+0+0+2 = 3);
  • если сумма цифр в троичной системе счисления суммы цифрколичества минут представляет собой простое число (10:05 -> 0+5 = 5 переводим в 3 СС = 12 -> 1 + 2 = 3).
После оценки каждого времени Коля выбирает времена, которые набрали наибольшее количество баллов по его правилам и выбирает самое позднее из них.
Коля давно мечтает написать программу, которая будет сама оценивать самое подходящее для него время пробуждения, потому он попросил вас помочь ему в этом.
Формат входных данных
На первой строке задано время в формате hh:mm (например, 02:05), когда Коля ляжет спать.
На второй строке задан диапазон, когда Коле нужно проснуться. Диапазон задан в виде двух наборов времени hh:mm через тире, притом первое время всегда меньше или равно второму.
Формат выходных данных
Выведите на первой строке в формате hh:mm (с нулями) время, на которое Коле стоит завести будильник.

Примечание
  • время засыпания Коли в диапазоне от 22:00 до 03:59;
  • время на которое Коля ставит будильник в диапазоне от 04:00 до13:00.

Строка формируется из заглавных английских букв следующим образом

  1. Начинаем с "A".

  2. Каждый следующий шаг: к предыдущей строке приписываем новую строку, в которой каждый символ предыдущей строки сдвинут вправо на 2 по алфавиту (A→C, B→D, ..., Y→A, Z→B).

Вот первые четыре шага:

Шаг 1: A
Шаг 2: AС
Шаг 3: AССE 
Шаг 4: ACCECEGG 

Какой символ стоит на 50-й позиции после 7-го шага?

Первый символ слева стоит на позиции 1. 

 

 

Строка формируется из заглавных английских букв следующим образом

  1. Начинаем с "A".

  2. Каждый следующий шаг: к предыдущей строке приписываем новую строку, в которой каждый символ предыдущей строки сдвинут вправо на 1 по алфавиту (A→B, B→C и т. д. Z→A).

Вот первые четыре шага:

Шаг 1: A
Шаг 2: AB
Шаг 3: ABBC 
Шаг 4: ABBCBCCD 

Какой символ стоит на 100-й позиции после 8-го шага?

Первый символ слева стоит на позиции 1. 

Поделиться
Класснуть