Информатика

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

Даны:

  1.  круг, заданный тремя числами  (r, x0, y0) - радиус и координаты центра окружности,
  2.  прямоугольник, заданный четырьмя числами (x1, y1, x2, y2), где (x1, y1) — это координаты нижнего левого угла, а (x2, y2) — это координаты верхнего правого угла прямоугольника. Стороны прямоугольника параллельны осям координат.
Напишите программу, которая выводит true, если круг и прямоугольник пересекаются, иначе - false. Другими словами, проверьте, существует ли хотя бы одна точка (xi, yi), которая принадлежит как кругу, так и прямоугольнику одновременно.


Формат входных данных
В первой строке задаются три целых числа: r, x0, y0
Во второй строке четыре целых числа: x1, y1, x2, y2

Ограничения:

  • 1 <= radius <= 2000
  • -104 <= xCenter, yCenter <= 104
  • -104 <= x1 < x2 <= 104
  • -104 <= y1 < y2 <= 104



Формат выходных данных
Выведите True, если круг и прямоугольник пересекаются, иначе - False.

Требуется в каждую клетку квадратной таблицы размером NxN поставить ноль или единицу так, чтобы в любом квадрате размера KxK было ровно S единиц.

Входные данные
Во входных данных записаны три числа — N, K, S (1 ≤ N ≤ 100, 1 ≤ K ≤ N, 0 ≤ S ≤ K2).

Выходные данные
Выведите заполненную таблицу. Числа в строке должны разделяться пробелом, каждая строка таблицы должна быть выведена на отдельной строке файла. Если решений несколько, выведите любое из них.

«Кто ходит в гости по утрам, тот поступает мудро…»

Пятачок и Винни-Пух каждое утро ходят пить чай в гости к Кролику. Естественно, самым коротким путем.

К сожалению, однажды Винни-Пуху пришла в голову идея вырыть ловушку для Слонопотама. Самое обидное, что они с Пятачком ее даже вырыли. Поэтому теперь каждое утро, идя в гости к Кролику, они боятся в нее провалиться.

Напишите программу, которая посчитает длину самого короткого безопасного пути от домика Винни-Пуха до домика Кролика.

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


Формат входных данных

Во входном файле записаны сначала координаты домика Винни-Пуха XВ YВ, затем — координаты домика Кролика XК YК, а затем — координаты центра и радиус ловушки XЛ YЛ RЛ. Все координаты — целые числа из диапазона от –32000 до 32000. Радиус ловушки — натуральное число, не превышающее 32000.

Домики Винни-Пуха и Кролика не могут находиться внутри ловушки, но могут находиться на ее границе.


Формат выходных данных

Выведите в выходной файл одно число — длину самого короткого безопасного пути от домика Винни-Пуха до домика Кролика с тремя знаками после точки.

Заданы коэффициенты уравнения прямой ax + by + c = 0 и координаты точки A (xa, ya). Найдите точку B, которая является отражением точки A относительно заданной прямой.


Формат входных данных

В начале с клавиатуры вводятся коэффициенты уравнения прямой abc, затем координаты точки A. Исходные данные являются целыми числами, по модулю не превышающими 1000


Формат выходных данных

Выведите координаты точки B с точностью до пятого знака после запятой.

В новом торговом центре проектируется вращающаяся дверь, которая на виде сверху представляет собой круг, разделенный на 4 равные части. Владельцы торгового центра знают, что самый большой товар, который у них будет продаваться, упаковывается в прямоугольные коробки шириной a,  длиной и высотой c. При этом транспортировать такую коробку можно только поставив ее на одну из граней. Определите, какой минимальный радиус должен быть у вращающейся двери, чтобы покупатель мог унести такой товар (высота двери может быть сколь угодно большой). Считается, что покупатель при попытке унести коробку действует самым очевидным для себя способом - размещает коробку так, чтобы угол один из углов коробки оказался в углу между створками двери. Размерами покупателя можно пренебречь.

Формат входных данных
C клавиатуры вводятся натуральные числа ab и c, не превосходящие 10000.

Формат выходных данных
Выведите минимально необходимый радиус двери с точностью не менее 5 знаков после запятой.

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

Поскольку Винни Пух очень любит покушать, то в данной задаче (да и не только в задаче) примем его за сферу радиуса  P. Центр медведя находится на высоте Hp над уровнем земли. Строго над медведем , находится еще одна сфера, радиуса S – воздушный шарик; центр шарика находится на высоте Hs над уровнем земли. Центры обеих сфер находятся на одной вертикальной прямой.  По понятным причинам гарантируется, что сферы не пересекаются J, однако могут касаться.

Считая, что ружье стреляет строго по прямой, вычислите минимальное расстояние L, на которое Пятачок должен отойти от места взлета, чтобы успешно поразить шарик. Шарик считается пораженным, если траектория пули хотя бы касается его поверхности; при этом если траектория пули касается медведя, то он считается невредимым.

Формат входных данных

C клавиатуры вводятся положительные целые числа P, Hp, S и Hs, не превосходящие 10000.


Формат входных данных

Выведите минимальное расстояние от точки взлета, с которого можно поразить шарик из ружья с точностью не менее 5 знаков после запятой.

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

У вас есть массив points, где points[i] = [xi, yi] — координаты i-го зеленого насаждения на двумерной карте города.

Также у вас есть массив queries, где queries[j] = [xj, yj, rj] описывает j-ю круговую зоны, в которой необходимо оценить количество зеленых насаждений.

Для каждого запроса queries[j] вычислите количество зеленых насаждений, находящихся внутри j-й круговой зоны. Точки, находящиеся на границе зоны, также считаются входящими в эту зону.

Верните массив answer, где answer[j] — это количество зеленых насаждений в j-й круговой зоне.
 

На планете в звездной системе Альфа Кентавра неделя состоит из A дней, а год - из B дней. Годы нумеруются последовательными натуральными числами: 1, 2, 3, ... Кроме того, годы с номерами C1, C2, ..., CN являются високосными и состоят из (B+1) дней. В году дни с номерами D1, D2, ..., DM являются праздничными. Если праздник попадает на (B+1)-й день года, то он отмечается только в високосные годы. Первый день первого года является первым днем недели.

Один из жителей планеты решил устроиться на новую работу. В соответствии с заключенным трудовым договором он будет числиться на данной работе в течение E дней, начиная с первого дня 1-го года. По договору он имеет право выбрать один день недели (с 1 по A), который будет для него выходным. Праздничные дни также считаются нерабочими. Житель хочет выбрать себе выходной день таким образом, чтобы за период действия договора у него было максимальное количество нерабочих дней.

Требуется написать программу, которая определяет искомый день недели и вычисляет соответствующее количество нерабочих дней.

Входные данные
В первой строке входного файла через пробел записаны числа A и B - количество дней в неделе и в невисокосном году соответственно (1 ≤ A ≤ 2500, 1 ≤ B ≤ 10000). Во второй строке записано число N - количество високосных лет, и в третьей - номера C1, C2, ..., CN високосных лет в возрастающем порядке (0 ≤ N ≤ 5000, 1 ≤ C1 < C2 < ... < CN ≤ 107). В следующей строке число M - количество праздничных дней в году, и на новой строке - D1, D2, ..., DM в возрастающем порядке (1 ≤ D1 < D2 < ... < DM ≤ B+1). В последней строке записано число E (1 ≤ E ≤ 109). Известно, что житель заключил контракт не более чем на 107 лет.

Выходные данные
В выходной файл выведите через пробел два числа - номер дня недели, который выгоднее всего сделать выходным, и соответствующее количество нерабочих дней за период действия договора. Если ответов несколько, то выведите любой из них.
В пространстве с прямоугольной системой координат находятся два куба. Про них известно следующее:
  • сторона каждого куба равна 2, 
  • центр (т.е. центр симметрии) каждого куба совпадает с началом данной системы координат,
  • координаты вершин >первого куба A1A2A3A4A5A6A7A8 следующие: A1(1, 1, 1), A2(1, –1, 1), A3(–1, –1, 1), A4(–1, 1, 1), A5(1, 1, –1), A6(1, –1, –1), A7(–1, –1, –1), A8(–1, 1, –1), 
  • вершины второго куба B1B2B3B4B5B6B7B8 пронумерованы так, что путем поворота кубы можно совместить, и при этом совместятся соответствующие их вершины (A1 и B1, A2 и B2, … , A8 и B8)
  • координаты вершин второго куба даны во входном файле.

Требуется найти объем пересечения (т.е. общей части) этих кубов.

Входные данные
Во входных данных записаны 8 троек действительных чисел – координаты вершин второго куба B1B2B3B4B5B6B7B8.

Выходные данные
В выходной файл выведите одно число – искомый объем пересечения кубов. Ответ не должен отличаться от верного более чем на 0.00001.
В государстве алхимиков есть N населённых пунктов, пронумерованных числами от 1 до N, и M дорог. Населённые пункты бывают двух типов: деревни и города. Кроме того, в государстве есть одна столица (она может располагаться как в городе, так и в деревне). Каждая дорога соединяет два населённых пункта, и для проезда по ней требуется Ti минут. В столице было решено провести 1-ю государственную командную олимпиаду по алхимии. Для этого во все города из столицы были отправлены гонцы (по одному гонцу на город) с информацией про олимпиаду.

Напишите программу, которая посчитает, в каком порядке и через какое время каждый из гонцов доберётся до своего города. Считается, что гонец во время пути не спит и нигде не задерживается.

Входные данные
Во входных данных сначала записаны 3 числа N, M, K — количество населенных пунктов, количество дорог и количество городов (2≤N≤1000, 1≤M≤10000, 1≤K≤N). Далее записан номер столицы C (1≤C≤N). Следующие K чисел задают номера городов. Далее следуют M троек чисел Si, Ei, Ti, описывающих дороги: Si и Ei — номера населенных пунктов, которые соединяет данная дорога, а Ti — время для проезда по ней (1≤Ti≤100).

Гарантируется, что до каждого города из столицы можно добраться по дорогам (возможно, через другие населенные пункты).

Выходные данные
Выведите K пар чисел: для каждого города должен быть выведен его номер и минимальное время, когда гонец может в нем оказаться (время измеряется в минутах с того момента, как гонцы выехали из столицы). Пары должны быть упорядочены по времени прибытия гонца.
Дана строка S, состоящая из N символов. Определим функцию A(i) от первых i символов этой сроки следующим образом:

A(i) = максимально возможному k, что равны следующие строки:

S[1]+S[2]+S[3]+…+S[k]

S[i]+S[i–1]+S[i–2]+…+S[i–k+1]

где S[i] – i-ый символ строки S, а знак + означает, что символы записываются в строчку непосредственно друг за другом.

Напишите программу, которая вычислит значения функции A для заданной строчки для всех возможных значений i от 1 до N.

Входные данные
В первой строке записано одно число N. 1 ≤ N ≤ 200000. Во второй строке записана строка длиной N символов, состоящая только из больших и/или маленьких латинских букв.

Выходные данные
Выведите N чисел — значения функции A(1), A(2), … A(N).
Напишите программу, которая будет искать все целые X, удовлетворяющие уравнению

AX3 + BX2 + CX + D = 0,

где A, B, C, D — данные целые числа.

Входные данные
Во входном файле записаны четыре целых числа: A, B, C, D. Все числа по модулю не превышают 2<=109.

Выходные данные
В выходной файл выведите сначала количество решений этого уравнения в целых числах, а затем сами корни в возрастающем порядке. Если уравнение имеет бесконечно много корней, выведите в выходной файл одно число –1 (минус один).
Оргкомитет и жюри Московской олимпиады проводят очередные учебно-тренировочные сборы. Победители туров на сборах получают в качестве приза мороженое. Поскольку мороженое имеет тенденцию таять, то оно должно храниться в холодильнике. Холодильник, имеющийся в 179 школе слишком мал для хранения всего запаса мороженого. Поэтому организаторы решили заказать специальный супер-пупер-большой холодильник. Новый холодильник должен быть параллелепипедом A × B × C и хранить ровно N кубических баночек мороженого размером 1 × 1 × 1. Для уменьшения потерь холода, общая площадь поверхности холодильника должна быть как можно меньше.

Например, если размер холодильника должен быть 12, возможными вариантами являются:

 
 
Размеры баночек Площадь поверхности
3 × 2 × 2 32
4 × 3 × 1 38
6 × 2 × 1 40
12 × 1 × 1 50

Лучшим вариантом является 3 × 2 × 2.

Помогите организаторам сборов выбрать оптимальную форму холодильника.

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

Входной файл содержит одно число N (1 ≤ N ≤ 106).

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

Выведите три числа A, B и C — оптимальные длины сторон холодильника. Если решений несколько — выведите любое из них.
В игру крестики-крестики играют на поле размером 1 × N. Два игрока ходят по очереди. На каждом ходу игрок выбирает одну свободную ячейку и ставит там крестик. Если после его хода оказывается три крестика подряд, то он побеждает.

По известному N вам необходимо определить какой игрок победит при оптимальной игре обоих игроков.

Входные данные
Входной файл содержит одно число N (3 ≤ N ≤ 2000).

Выходные данные
Выведите 1, если побеждает первый игрок и 2, если побеждает второй игрок.
Алфавитно-частотный словарь - это частотный словарь, в котором слова с указанием их частоты (встречаемости) расположены по алфавиту.
Постройте словарь, отсортированный по частоте слов, в котором слова расположены порядке уменьшения их частоты встречаемости, справа от каждого слова должно быть указано сколько раз оно встречается в тексте. Если количество слов одинаково, сортировка идет по словам в лексикографическом порядке.  Признаком окончания текста является "END!". 

Входные данные
На вход подаются строки текста. Последняя строка содержит одно единственное слово "END!" и является признаком окончания текста.

Выходные данные
Выведите на экран все слова, с указанием через пробел того, сколько раз это слово встречается в тексте. Каждое слово в отдельной строке. Слова должны быть расположены в порядке уменьшения частоты встречаемости.

 
Примеры
Входные данные Выходные данные
1 один два
три один
два
END!
два 2
один 2
три 1
✓ 594✗ 1 304500лёгкаяВойти и решать
С клавиатуры вводятся целые положительные числа. Напишите программу, которая находит сумму введенных чисел. Числа вводятся до тех пора, пока не будет введено число 0.

Выведите на экран ответ - сумму введенных чисел.
✓ 362✗ 692300лёгкаяВойти и решать
Напишите программу, которая:
  1. Принимает от пользователя (с клавиатуры) целое число и сохраняет его в переменной num.
  2. Выводит все положительные целые числа от 1 до num (num включительно). Каждое число необходимо вывести на отдельной строке.
✓ 565✗ 1 814200лёгкаяВойти и решать

На проверку сдается код, содержащий только описание классов!

Объявите базовый класс Aircraft (самолет), объекты которого создаются командой:

air = Aircraft(model, mass, speed, top)

где __model - модель самолета (строка, private); _mass - подъемная масса самолета (любое положительное число, protected ); _speed - максимальная скорость (любое положительное число, protected); _top - максимальная высота полета (любое положительное число, protected).

В каждом объекте класса Aircraft должны создаваться локальные атрибуты с именами: __model, _mass, _speed, _top и соответствующими значениями. Если передаваемые аргументы не соответствуют указанным критериям (строка, любое положительное число), то генерируется исключение командой:

raise TypeError('неверный тип аргумента')

Изменение и считывание значений атрибута __model должна осуществляться по имени (obj.model = ..., print(obj.model)

Далее, в программе объявите следующие дочерние классы:

PassengerAircraft - пассажирский самолет;
WarPlane - военный самолет.

Объекты этих классов создаются командами:

pa = PassengerAircraft(model, mass, speed, top, chairs)  
# chairs - число пассажирских мест (целое положительное число)

wp = WarPlane(model, mass, speed, top, weapons) 
# weapons - вооружение (словарь); ключи - название оружия, значение - количество

В каждом объекте классов PassengerAircraft и WarPlane должны формироваться локальные атрибуты с именами _chairs (protected)  и _weapons (protected) соответственно. Инициализация остальных атрибутов должна выполняться через инициализатор базового класса.

В инициализаторах классов PassengerAircraft и WarPlane проверять корректность передаваемых аргументов chairs и weapons. Если тип данных не совпадает, то генерировать исключение командой:

raise TypeError('неверный тип аргумента')

Пример создания объектов

pa1 = PassengerAircraft('МС-21', 1250, 8000, 12000.5, 140)
pa2 = PassengerAircraft('SuperJet', 1145, 8640, 11034, 80)
wp1 = WarPlane('Миг-35', 7034, 25000, 2000, {"ракета": 4, "бомба": 10})
wp2 = WarPlane('Су-35', 7034, 34000, 2400, {"ракета": 4, "бомба": 7})

Бизнесмен Василий после прочтения известной книги решил открыть новый бизнес – отгружать апельсины бочками. Партнерам важно знать сколько именно бочек апельсинов отгружается каждый день.

Мобильный телефон Василия поддерживает только транслит, поэтому он передает сообщения вида "N bochek" . Например, "3 bochki" или "1 bochka" .

Напишите программу, которая выбирает правильное слово (из "bochka" , "bochek" , "bochki" ) в зависимости от N.


Формат входных данных

Одно число N (0 ≤ N ≤ 1000).


Формат выходных данных

Фраза на транслите (см. примеры).


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