Информатика

15 732 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Дана матрица a размером \(n \cdot n\) (\(1 <= n <= 1000\), \(1 <= a_i <= 10^9\)). Также даны m (\(1 <= m <= 1000\)) запросов вида x1, y1, x2, y2 (\(1 <= x_1 <= n\), \(1 <= y_1 <= n\), \(x_1 <= x_2 <= n\), \(y_1 <= y_2 <= n\)).
На каждый запрос нужно вывести максимальный элемент в подматрице с координатами краёв x1, y1 и x2, y2.

 

Примеры
Входные данные Выходные данные
1
4
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
1
1 1 3 4
6

Дан массив a длины n (\(1 <= n <= 2 \cdot 10^6\), \(1 <= a_i <= 10^9\)). Также даны m (\(1 <= m <= 500\)) запросов вида t, l, r (\(0 <= t <= 1\), \(1 <= l <= r <= n\)).

Если \(t = 0\), то на запрос нужно вывести сумму чисел на отрезке от l до r включительно. Если \(t = 1\), то элементу с номером l присваивается значение r. Элементы нумеруются с 1 до n

 

Примеры
Входные данные Выходные данные
1
5
1 2 3 4 5
4
0 1 2
1 1 5
0 1 2
0 1 1
3
7
5

Дан массив a длины n (\(1 <= n <= 2 \cdot 10^6\), \(1 <= a_i <= 10^9\)). Также даны m (\(1 <= m <= 500\)) запросов вида l, r (\(1 <= l <= r <= n\)).

На каждый запрос нужно вывести сумму чисел на отрезке от l до r включительно. Элементы нумеруются с 1 до n.

 

Примеры
Входные данные Выходные данные
1
4
1 2 3 4
2
1 4
1 1
10
1
2
5
5 5 5 5 5
1
5 5
5
29648#29648
Дано число n, n  100 . Создайте массив n×n и заполните его по следующему правилу:
- числа на диагонали, идущей из правого верхнего в левый нижний угол, равны 1; 
- числа, стоящие выше этой диагонали, равны 0;
- числа, стоящие ниже этой диагонали, равны 2.

Входные данные
Программа получает на вход число n.
 
Выходные данные
Необходимо вывести  полученный массив. Числа разделяйте одним пробелом.

Вам нужно реализовать структуру данных на базе массива, которая сможет отвечать на данные типы запросов:

0 - вывести размер массива и знак перехода на новую строку;
1 x - добавить в конец массива число x;
2 - удалить последний элемент массива;
3 x y - вставить число y между элементами массива x и x + 1;
4 x - удалить элемент №x;
5 - вывести все элементы массива в порядке их следования в нем через пробел. В конце выведите знак перехода на новую строку;
6 x - изменить размер массива на x. Если x меньше текущего размера массива, то все элементы, начиная с элемента №x отбрасываются. Если x больше текущего размера массива, то появившиеся элементы массива будут равны 0.
 
Формат входных данных
- в первой строке содержится число N (\(1 <= n <= 100\));
- в следующих N строках содержатся запросы в формате, записанном в условии.
 
Формат выходных данных
Выведите ответы на запросы типа 0 и 5.
✓ 341✗ 1 218700средняяВойти и решать
В мирное время казаки занимаются сельским хозяйством. Пантелей Прокофьевич Мелехов выращивает специальные математические овощи, которые растут по очень странным правилам: у каждого семечка i этих овощей есть значение урожайности ai, а урожайностью всей грядки является произведение урожайностей всех семян, посаженных на ней. У Мелехова есть N семян. Помогите ему выбрать из этих семян несколько так, чтобы при посадке этих семян урожайность грядки была максимальна.
 
Входные данные:
В первой строке содержится число N (1 <= N <= 15)
Во второй - N чисел ai, возможно вещественных (|ai| < 10)
 
Выходные данные:
Выведите максимальную урожайность грядки с точностью не менее 6 знаков после запятой, которой можно добиться с данным набором семян. Гарантируется, что оно больше 1.
 
Ввод Вывод
5
2.0 -1.2 4.7 -2.9 -1.1
32.712000

(с) Григорьев Е., 2018
Наталья Коршунова очень скучает по Григорию Мелехову и хочет вернуться к нему. Но, к сожалению, Григорий любит Аксинью, поэтому Наталья решила доказать любимому, что она лучше нее.
Для этого Наталья отправилась к Григорию и заявила, что она может решить любую задачу, какую бы он ни предложил. Мелехов принял вызов.
 
Григорий дает Наталье массив A, состоящий из n целых неотрицательных чисел. Затем он просит ее сделать q однотипных операций, заключающихся в следующем: "Даны числа l, r и k. Далее для каждого индекса i от l до r происходит подстановка числа k вместо числа Ai и считается побитовое исключающее “или” всех чисел на отрезке \([l;r]\), после чего на iое место опять возвращается число Ai".
Таким образом, происходит \(r – l + 1\) независимых подстановок, не меняющих массив, и соответственно \(r – l + 1\) результатов побитового исключающего “или”. Наталье необходимо сообщить Григорию побитовое исключающее “или” всех результатов подстановок (для лучшего понимания ознакомьтесь с примерами).
 
Помогите Наталье Коршуновой справиться с этой задачей! Тогда Григорий точно вернется к ней!
 
Входные данные
В первой строке дано целое число n (\(1 <= n <= 10^5\)) – количество элементов массива.
Во второй строке содержится n целых неотрицательных чисел, не превышающих по значению \(10^8\).
В третьей строке дано целое число q (\(1 <= q <= 10^5\)) – количество запросов.
Далее содержится q строк, в каждой из которых содержится 3 целых числа: l, r, k (\(1 <= l <= r <= n\), \(0 <= k <= 10^8\)).
 
Выходные данные
Вам необходимо вывести q ответов на каждый запрос в одной строке через пробел.
 

 

Примеры
Входные данные Выходные данные
1
5
1 2 3 4 5
2
1 3 7
4 5 10
7 1


Пояснение
Первый запрос:
1) 7 ⊕ 2 ⊕ 3 = 6
2) 1 ⊕ 7 ⊕ 3 = 5
3) 1 ⊕ 2 ⊕ 7 = 4
6 ⊕ 5 ⊕ 4 = 7
Ответ: 7.
 
Второй запрос:
1) 10 ⊕ 5 = 15
2) 4 ⊕ 10 = 14
15 ⊕ 14 = 1
Ответ: 1.
 
Дана база данных о продажах некоторого интернет-магазина. Каждая строка входного файла представляет собой запись вида:
Покупатель товар количество,
где Покупатель — имя покупателя (строка без пробелов), товар — название товара (строка без пробелов), количество — количество приобретенных единиц товара.
 
Создайте список всех покупателей, а для каждого покупателя подсчитайте количество приобретенных им единиц каждого вида товаров.
 
 
Входные данные
В первой строке входного файла содержится число N (\(1<=N<=100000\)) —количество записей содержащихся в данной базе данных. Вводятся сведения о покупках в указанном формате.
 
Выходные данные 
Выведите список всех покупателей в лексикографическом порядке, после имени каждого покупателя выведите двоеточие, затем выведите список названий всех приобретенных данным покупателем товаров в лексикографическом порядке, после названия каждого товара выведите количество единиц товара, приобретенных данным покупателем. Информация о каждом товаре выводится в отдельной строке.
 
 
Пример
Входные данные Выходные данные
1
6
Ivanov paper 10
Petrov pens 5
Ivanov marker 3
Ivanov paper 7
Petrov envelope 20
Ivanov envelope 5
Ivanov:
envelope 5
marker 3
paper 17
Petrov:
envelope 20
pens 5
✓ 747✗ 996600лёгкаяВойти и решать
В файловую систему одного суперкомпьютера проник вирус, который сломал контроль за правами доступа к файлам. Для каждого файла Ni известно, с какими действиями можно к нему обращаться:
 
запись W
чтение R
запуск X
 
Вам требуется восстановить контроль над правами доступа к файлам (ваша программа для каждого запроса должна будет возвращать OK, если над файлом выполняется допустимая операция, или же Access denied, если операция недопустима).
 
Входные данные
В первой строке содержится число N (1 <= N <= 10000) - количество файлов содержащихся в данной файловой системе.
В следующих N строках содержатся имена файлов и допустимых с ними операций, разделенные пробелами. Длина имени файла не превышает 15 символов.
Далее указано число M (1 <= M <= 50000) - количество запросов к файлам.
В последних M строках указан запрос вида Операция Файл. К одному и тому же файлу может быть применено любое количество запросов.
 
Выходные данные
Для каждого из M запросов нужно вывести в отдельной строке Access denied или OK.
 
 
Пример
Входные данные Выходные данные
1
4
helloworld.exe R X
pinglog W R
nya R
goodluck X W R
5
read nya
write helloworld.exe
execute nya
read pinglog
write pinglog
OK
Access denied
Access denied
OK
OK
✓ 912✗ 1 142600лёгкаяВойти и решать
Требуется разложить целое число N на простые множители, представив его в виде произведения простых множителей и вывести результат в порядке возрастания.
 
Входные данные  
На вход падается число N (\(2 <= N <= 10^9\)).
 
Выходные данные 
Выведите список простых множителей числа N в порядке неубывания, разделенных знаком «*».
 
Примеры
Входные данные Выходные данные
1 5 5
2 30 2*3*5
Требуется разложить целое число N на простые множители, представив его в виде произведения степеней простых множителей и вывести результат в порядке возрастания.
 
Входные данные 
На входе дано число N (\(2 <= N <= 10^9\)).
 
Выходные данные 
Вывести разложение N на простые множители.
 
Примеры
Входные данные Выходные данные
1 2 2
2 1008 2^4*3^2*7
Назовём длиной числа количество цифр в его десятичной записи. Например, длина числа 2017 равна 4, а длина числа 7 равна 1. Дан набор из N целых неотрицательных чисел, каждое из которых меньше 109.
Необходимо определить, числа какой длины реже всего (но не менее одного раза) встречаются в данном наборе и сколько в нём чисел этой длины. Если числа разной длины встречаются одинаково часто (и реже, чем числа любой другой длины), нужно выбрать меньшую длину.
Напишите эффективную по времени и по памяти программу для решения этой задачи.

Описание входных и выходных данных
В первой строке входных данных задаётся количество чисел N (\(1 <= N <= 10000\)). В каждой из последующих N строк записано одно неотрицательное число, не превышающее 109.
Пример входных данных:
5
12
417
125
327
4801
Пример выходных данных для приведённого выше примера входных данных:
2 1
В данном наборе реже всего (по 1 разу) встречаются числа длины 2 и 4.
 

Дед Мороз и Снегурочка приходят на детские утренники с мешком конфет. Дед Мороз делит конфеты поровну между всеми присутствующими детьми (детей на утреннике никогда не бывает больше 100), а оставшиеся конфеты отдает Снегурочке. Снегурочка каждый раз записывает в блокнот количество полученных конфет. Если конфеты разделились между всеми детьми без остатка, Снегурочка ничего не получает и ничего не записывает. Когда утренники закончились, Деду Морозу стало интересно, какое число чаще всего записывала Снегурочка. 

Дед Мороз и Снегурочка – волшебники, поэтому число утренников N, на которых они побывали, может быть очень большим. 

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

Программа будет считаться эффективной по памяти, если используемая память не зависит от размера входных данных (то есть числа утренников). Программа будет считаться эффективной по времени, если при увеличении размера входных данных N в t раз (t – любое число) время её работы увеличивается не более чем в t раз.

 
Входные данные
В первой строке вводится одно целое положительное число – количество утренников N. Каждая из следующих N строк содержит два целых числа: D – количество пришедших на очередной утренник детей; K – количество конфет в мешке Деда Мороза на этом утреннике. 

Гарантируется выполнение следующих соотношений: \(1 <= N <= 10000\), \(1 <= D <= 100\) (для каждого D), \(D <= K <= 1000\) (для каждой пары D, K)

Выходные данные
Программа должна вывести одно число – то, которое Снегурочка записывала чаще всего. Если несколько чисел записывались одинаково часто, надо вывести большее из них. Если Снегурочка ни разу ничего не записывала, надо вывести ноль.
 

 

Примеры
Входные данные Выходные данные
1
7
10 58
15 315
20 408
100 1000
32 63
32 63
11 121
31
На вход программы поступает последовательность из N целых положительных чисел, все числа в последовательности различны. Рассматриваются все пары различных элементов  последовательности (элементы пары не обязаны стоять в последовательности рядом, порядок элементов в паре не важен). Необходимо определить количество пар, для которых произведение элементов делится на 26.
 
Входные данные
В первой строке входных данных задаётся количество чисел N (\(1 < N <= 100000\)). В каждой из последующих N строк записано одно целое положительное число, не превышающее 10 000.

Выходные данные
В качестве результата программа должна напечатать одно число: количество пар, в которых произведение элементов кратно 26.
 

 

Примеры
Входные данные Выходные данные
1
4
2
6
13
39
4

Пояснение. Из четырёх заданных чисел можно составить 6 попарных произведений: 2·6, 2·13, 2·39, 6·13, 6·39, 13·39 (результаты: 12, 26, 78, 78, 234, 507). Из них на 26 делятся 4 произведения (2·13=26; 2·39=78; 6·13=78; 6·39=234).
 

В галактике находится n планет, на каждой из которых обитают множество различных живых существ. И каждое из них может оказаться в беде! Космические спасатели прекрасно знают об этом и всегда готовы помочь каждому, кому эта помощь действительно понадобится. Стоит только позвать.
 
Сейчас космические спасатели планируют построить самую большую в истории галактики спасательную базу, однако месторасположение будущей базы пока еще не определено. Поскольку помощь иногда требуется абсолютно неотложно, спасатели стремятся найти такую точку в галактике, из которой можно было бы добраться до самой удаленной планеты за наименьшее возможное время. Другими словами, необходимо найти такую точку в пространстве, чтобы расстояние от нее до самой удаленной от нее планеты было наименьшим из всех возможных точек в пространстве. К сожалению, они не в силах решить такую задачу.
 
Поскольку планеты достаточно удалены друг от друга, их можно считать точками в евклидовом трехмерном пространстве. Расстояние между точками (xi, yi, zi) и (xj, yj, zj) вычисляется по формуле:
Спасательная база может располагаться в любой точке пространства, в том числе, совпадать с какой либо из планет.
 
Галактика в опасности! Спасите космических спасателей и укажите им искомую точку.
 
Входные данные
В первой строке входного файла содержится целое число n — количество планет (1 ≤ N ≤ 100). Каждая из последующих n строк содержит информация о планетах. i-я из этих строк содержит три целых числа xi, yi, zi — координаты i-й планеты ( - 104 ≤ xi, yi, zi ≤ 104, 1 ≤ i ≤ n). Никакие две планеты не совпадают.
 
Выходные данные
В первой строке выходного файла следует вывести три вещественных числа через пробел x0, y0, z0 — координаты будущей базы. Если существует несколько решений, то разрешается вывести любое. Ответ будет засчитан, если расстояние от данной точки до самой удаленной планеты будет отличаться от результата жюри не более чем на 10-6 по абсолютному или относительному значению.
 
Ввод Вывод
5
5 0 0
-5 0 0
0 3 4
4 -3 0
2 2 -2
0.000 0.000 0.000

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

Можно считать, что берёза является отрезком прямой и растёт строго перпендикулярно земле.
 
Входные данные
В единственной строке записаны целые числа a, b  — длины палок (\(1 <= a, b <= 10 000\)). Известно, что суммарная длина палок строго меньше высоты берёзы.

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

 

Примеры
Входные данные Выходные данные
1 2 2 4.828427125
Источник: Уральская региональная командная олимпиада по программированию 2011
Чтобы помешать появлению СЭС в лагере, администрация ЛКШ перекопала единственную дорогу, соединяющую «Берендеевы поляны» с Судиславлем, теперь проехать по ней невозможно. Однако, трудности не остановили инспекцию, хотя для СЭС остается только одна возможность — дойти до лагеря пешком. Как известно, Судиславль находится в поле, а «Берендеевы поляны» — в лесу.
 
    - Судиславль находится в точке с координатами (0, 1).
    - «Берендеевы поляны» находятся в точке с координатами (1, 0).
    - Граница между лесом и полем — горизонтальная прямая y=a, где a — некоторое число (0 ≤ a ≤ 1).
    -  Скорость передвижения СЭС по полю составляет Vp, скорость передвижения по лесу — Vf. Вдоль границы можно двигаться как по лесу, так и по полю.

Администрация ЛКШ хочет узнать, сколько времени у нее осталось для подготовки к визиту СЭС. Она попросила вас выяснить, в какой точке инспекция СЭС должна войти в лес, чтобы дойти до «Берендеевых полян» как можно быстрее.
 
Входные данные
В первой строке входного файла содержатся два положительных целых числа Vp  и V (1≤ Vp, Vf ≤ 105) . Во второй строке содержится единственное вещественное число — координата по оси Oy  границы между лесом и полем a  (0 ≤ a ≤ 1) .
 
Выходные данные
В единственной строке выходного файла выведите вещественное число с точностью не менее 8 знаков после запятой — координата по оси Ox точки, в которой инспекция СЭС должна войти в лес.
 
Ввод Вывод
5 3
0.4
0.783310604
5 5
0.5
0.500000000
Велосипедисты, участвующие в шоссейной гонке, в некоторый момент времени, который называется начальным, оказались в точках, удалённых от места старта на x1, x2, ..., xn метров (n – общее количество велосипедистов). Каждый велосипедист двигается со своей постоянной скоростью v1, v2, ..., vn метров в секунду. Все велосипедисты двигаются в одну и ту же сторону.
 
Репортёр, освещающий ход соревнований, хочет определить момент времени, в который расстояние между лидирующим в гонке велосипедистом и замыкающим гонку велосипедистом станет минимальным, чтобы с вертолёта сфотографировать сразу всех участников велогонки.
 
Требуется написать программу, которая по заданному количеству велосипедистов n, заданным начальным положениям велосипедистов x1, x2, ..., xn и их скоростям v1, v2, ..., vn, вычислит момент времени t, в который расстояние l между лидирующим и замыкающим велосипедистом будет минимальным.
 
Входные данные
Первая строка входного файла содержит целое число n – количество велосипедистов.
 
В последующих n строках указаны по два целых числа: xi – расстояние от старта до i-го велосипедиста в начальный момент времени (0 ≤ xi ≤ 107 ) и vi – его скорость (0 ≤ vi ≤ 107 ).
 
Выходные данные
В выходной файл необходимо вывести два вещественных числа: t – время в секундах, прошедшее от начального момента времени до момента, когда расстояние в метрах между лидером и замыкающим будет минимальным, l – искомое расстояние.
 
Числа t и l должны иметь абсолютную или относительную погрешность не более 10–6, что означает следующее. Пусть выведенное число равно x, а в правильном ответе оно равно y. Ответ будет считаться правильным, если значение выражения |x – y| /  max(1,  |y| )  не превышает 10–6.
 
Подзадачи и система оценки
Данная задача содержит четыре подзадачи. Для оценки каждой подзадачи используется своя группа тестов. Баллы за подзадачу начисляются только в том случае, если все тесты из этой группы пройдены.
 
Ввод Вывод
3
0 40
30 10
40 30
1 30
5
90 100
100 70
100 70
110 60
120 35
0.5 5.000000000000

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


 

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

 
Входные данные
Входной файл содержит 12 чисел: x1, y1, x2, y2, x3, y3, x4, y4, v1x, v1y, v2x, v2y. Координаты вершин первого отрезка: (x1, y1) и (x2, y2), координаты вершин второго отрезка: (x3, y3) и (x4, y4), скорость первого отрезка (v1x, v1y), скорость второго отрезка (v2x, v2y). Все числа целые и не превосходят по модулю 104. В начальный момент времени веточки не соприкасаются. Гарантируется, что веточки имеют ненулевую длину.
 
Выходные данные
Выведите в выходной файл время до ближайшего момента, когда веточки соприкоснутся, с ошибкой не более 10−4. Если веточки не соприкоснутся никогда, выведите число -1.
 
Ввод Вывод
0 0 -1 3
4 4 7 7
3 0
0 -1
1.6
0 0 -1 3
4 4 7 7
1 0
0 -3
-1
 
Дима недавно поступил на работу в НИИ Плоских Кривых. Как следует из названия этого научно- исследовательского института, он занимается различными исследованиями в области плоских кривых. Недавно Димин начальник Георгий столкнулся с весьма интересной кривой, которая, как выяснилось после некоторого исследования, известна под названием Архимедовой спирали. Архимедова спираль плоская кривая, изображающая траекторию точки M, которая равномерно движется вдоль луча OK с началом в O, в то время как сам луч OK равномерно вращается вокруг точки O (см. рисунок). Другими словами, расстояние до начала координат ρ = OM линейно зависит от угла поворота φ луча OK. При этом повороту луча OK на один и тот же угол соответствует одно и то же приращение расстояния ρ. 
 
Движение точки M можно задать с помощью ряда параметров:
 
• начального угла поворота α луча OK (измеряется в градусах против часовой стрелки относительно положительного направления оси OX);
 
• угловой скорости вращения ω луча OK (измеряется в градусах за единицу времени);
 
• начального расстояния R от точки M до начала координат (точки O);
 
• скорости движения V точки M по лучу OK.
 
Если, задав эти параметры, не ограничить время движения точки M, то получится бесконечная кривая, исследовать которую достаточно трудно. Поэтому Дима решил ограничиться исследованием некоторой части этой кривой той, которая получается при движении точки M от нулевого момента времени до момента времени T. Задача, которую решает Дима состоит в поиске прямоугольника минимальной площади со сторонами, параллельными осям координат, в который ее можно вписать.
 
Требуется написать программу, которая найдет искомый прямоугольник

 
Входные данные
Входной файл содержит четыре целых числа: ω (1 ≤ ω ≤ 100), V (1 ≤ V ≤ 100), R (0 ≤ R ≤ 100) и T (1 ≤ T ≤ 1000). В этой задаче считается, что начальный угол поворота α равен нулю.
 
Выходные данные
В первой строке выходного файла выведите два вещественных числа — координаты левого нижнего угла искомого прямоугольника, а во второй строке — координаты правого верхнего угла искомого прямоугольника.
 
Ответ будет считаться правильным, если значение каждой из координат будет отличаться от истинного значения не более чем на 10-5.
Поделиться
Класснуть