Алгоритмы(1657 задач)
Структуры данных(279 задач)
Интерактивные задачи(17 задач)
Другое(54 задач)
В руки одного искателя приключений попал старинный пиратский манускрипт. В рукописи сказано: "Придя на восходе солнца в точку \(A\), я начал свой путь по острову в поисках надежного места, чтобы спрятать сокровища. Я шел не спеша, все время с одинаковой скоростью в том направлении, куда показывала моя тень. Двигаясь таким образом, через \(N\) часов я вышел к руинам какого-то древнего храма, у северо-западного угла которых я и закопал свои сокровища. Вернувшись на корабль к заходу Солнца я с удивлением обнаружил, что в этот день от восхода Солнца до его захода прошло ровно 12 часов, причем Солнце взошло точно на востоке, а село точно на западе."
Искатель приключений, конечно же пожелал найти сокровища. Тем более, что число N ему было известно, а изображение точки A на карте прекрасно сохранилось. Единственная проблема – на острове оказалось слишком много разных руин, и исследовать их все займет очень много времени.
Напишите программу, которая по описанию острова определит список руин, наличие клада у которых наиболее вероятно. При решении задачи будем считать что угловая скорость Солнца над горизонтом постоянна (то есть за одно и то же время Солнце проходит один и тот же угол).
сначала вводится число \(N\) (натуральное, не превышает 11), затеем число \(k\) (натуральное, не превышает 100). Далее следует k строк по 3 числа в каждой – координаты и радиус соответствующих руин (целые, по модулю не превышают 1000). Гарантируется что никакие руины не перекрываются. Координатная плоскость организована таким образом: за начало координат принята точка \(A\), ось \(O_Y\) направлена с юга на север, ось \(O_X\) направлена с запада на восток.
выведите список руин, в которых следует искать клад, упорядоченный по удаленности от точки \(A\). В списке следует выводить только координаты руин, по одному объекту в строке. Гарантируется, что на острове существуют хотя бы одни искомые руины.
6 3 -100 0 10 0 100 10 -50 50 20
-50 50
Системный администратор вспомнил, что давно не делал архива пользовательских файлов. Однако, объем диска, куда он может поместить архив, может быть меньше чем суммарный объем архивируемых файлов.
Известно, какой объем занимают файлы каждого пользователя.
Напишите программу, которая по заданной информации о пользователях и свободному объему на архивном диске определит максимальное число пользователей, чьи данные можно поместить в архив, при этом используя свободное место как можно более полно.
сначала вводится число \(S\) – размер свободного места на диске (натуральное, не превышает 10000), затем следует число \(N\) – количество пользователей (натуральное, не превышает 100), после этого идет \(N\) чисел - объем данных каждого пользователя (натуральное, не превышает 1000).
выведите наибольшее количество пользователей, чьи данные могут быть помешены в архив.
100 2 200 50
1
100 3 50 30 50
2
Один из самых простых способов обогащения предложили писатели-фантасты. Он заключается в следующем: берем исправную машину времени и с ее помощью отправляемся в прошлое на несколько веков. Там помещаем небольшую (но лучше все-таки побольше) сумму денег в банк под сколько-то процентов годовых. Потом возвращаемся в настоящее, идем в филиал сохранившегося банка и предъявляем ценные бумаги к оплате.
Напишите программу, которая вычислит сумму на счете, скопившуюся за \(N\) (натуральное, не превышает 2000) лет при 10% годовых при начальном взносе равном \(X\) (натуральное, не превышает \(10^6\)). Проценты начисляются следующим образом: по прошествии каждого года к сумме, находящейся на счете, прибавляется 10% от нее, округленные до целого в меньшую сторону.
сначала вводится число \(X\), затем число \(N\).
выведите сумму, которую можно получить на счете при таких условиях.
1 1000
1
10 2
12
Разделим квадратную матрицу диагональю, соединяющую правый верхний элемент с левым нижним. Такую диагональ обычно называют "побочной":
На вход программе сначала подается значение \(n\) ≤ 20 – размер квадратной матрицы. В следующих \(n\) строках входных данных расположены сами элементы матрицы – натуральные числа, меньшие 100.
Распечатайте в виде треугольной таблицы элементы матрицы, стоящие выше побочной диагонали, выравнивая значения по столбцам так, как показано в примере. О способе выравнивания вывода в Python можно прочитать в условии задачи Треугольник Паскаля - 2.
4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 2 3 4 5 6 7 9 10 13
В кинотеатре \(n\) рядов по \(m\) мест в каждом. В соответствующем двумерном массиве хранится информация о проданных билетах на определенный сеанс (единицы означают, что на данные места билеты уже проданы, нули – что данные места еще свободны). Поступил запрос на продажу \(k\) билетов на соседние места в одном ряду. Определите, можно ли удовлетворить такой запрос.
В первой строке входных данных находятся числа \(n\), \(m\), \(k\) ≤ 100. В следующих \(n\) строках входных данных расположены по \(m\) чисел (0 и 1), разделенных пробелами.
Выведите YES или NO в зависимости от ответа на вопрос задачи.
3 4 2 0 1 0 1 1 0 0 1 1 1 1 1
YES