Информатика

15 724 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Дано число N (\(1<=N<=1000\)), а затем N натуральных чисел из диапазона от 1 до 100.
Вывести перестановку элементов массива, на которой быстрая сортировка выполнит максимальное число сравнений, при условии, что "опорным" будет элемент посередине. 

Входные данные 
В первой строке задаётся число N.

Выходные данные
Выведите требуемую перестановку чисел от 1 до N, на которой быстрая сортировка выполнит максимальное число сравнений.
 
Примеры
Входные данные Выходные данные
1 5 1 4 5 3 2
 
Пояснение
Худшее время работы достигается когда массив разбивается так, что одна часть содержит n−1 элементов, а вторая — 1. Этого можно добиться если на каждом этапе разбиения в середине будет максимальный элемент.
1) 1 4 5 3 2
2) 1 4 2 3 5
3) 1 3 2 4 5
4) 1 2 3 4 5
5) 1 2 3 4 5

 

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

Входные данные
В первой строке входного файла записаны числа N и M — количество чисел у Дениски и Мишки соответственно. В следующих N строках заданы числа Дениски. В последних M строках - числа Мишки.

Выходные данные 
Выведите сначала количество, а затем отсортированные по возрастанию числа такие, которые есть в обоих наборах, затем количество и отсортированные по возрастанию остальные числа из набора Дениски, потом количество и отсортированные по возрастанию числа из набора Мишки.
 
Примеры
Входные данные Выходные данные
1 4 3
0
1
10
9
1
3
0
2
0 1
2
9 10
1
3
✓ 847✗ 1 751600лёгкаяВойти и решать
Игры с числами для Дениски с Мишкой стали самыми любимыми. Теперь они играют следующим образом. 
Дениска дает Мишке следующие команды:
1) запомнить a - после этой команды Мишка должен запомнить очередное число a
2) забыть a - после этой команды Мишка забывает о том, что число a было (Дениска всегда называет число a, которое раньше точно было)
Играет продолжается некоторое число шагов, которое заранее обговаривается. После всех шагов Мишка должен в порядке возрастания назвать все уникальные числа, которые он запомнил.

Входные данные
На вход подается число N (\(1 <= N <= 100000\)) - количество шагов в игре. В следующих N строках содержатся  команды в следующем формате:
символ ‘+’ (запомнить число) или ‘-’ (забыть число) и через пробел число a (\(1 <= a <= 1000000000\)).
Гарантируется, что если число a необходимо забыть, то до этого оно уже встречалось с командой '+' и не забывалось. 

Выходные данные
Требуется вывести все уникальные числа (по возрастанию), которые в итоге запомнил Мишка после выполнения всех запросов или -1, если таких чисел в итоге не оказалось.
 
Примеры
Входные данные Выходные данные
1
3
+ 1
+ 2
- 1
2
2
3
+ 1
+ 1
- 1
-1
3
3
+ 1
+ 1
+ 1
1

 
✓ 1 130✗ 2 396500лёгкаяВойти и решать
Дениска решил тренировать память Мишки. Для этого он решил называть некоторые числа. А Мишка для каждого числа должен говорить слово YES, если это число ранее уже называлось Дениской или NO, если не называлось. Помогите Дениске потренировать Мишку, напишите программу, которая бы показывала какой ответ должен произносить Мишка.

Входные данные
Вводится список чисел. Все числа списка находятся на одной строке.

Выходные данные 
Для каждого числа выведите слово YES (в отдельной строке), если это число ранее встречалось в последовательности или NO, если не встречалось.
 
Примеры
Входные данные Выходные данные
1 1 2 3 2 3 4 NO
NO
NO
YES
YES
NO
✓ 1 625✗ 2 003300лёгкаяВойти и решать

Помогите Дениске из двух списков чисел вывести в порядке возрастания те, которые входят как в первый, так и во второй список.

Программу на Python попробуйте написать в одну строчку.


Формат входных данных 
Вводятся два списка чисел. Все числа каждого списка находятся на отдельной строке.

Формат выходных данных 
Выведите ответ на задачу.
✓ 1 920✗ 4 417200лёгкаяВойти и решать
Мишка решил проверить способности Дениски на других задачах. Например, решил проверить сможет ли Дениска из двух списков чисел быстро посчитать количество чисел, которые встречаются одновременно в обоих. Как мы знаем Дениска любит хвастаться и сказал, что запросто это сделает. Вас же он просит написать для него программу. 
На языке Python это можно сделать в одну строчку.

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

Выходные данные
Выведите ответ на задачу.

 
Примеры
Входные данные Выходные данные
1 1 3 2
5 1 2
2
✓ 2 329✗ 3 666100лёгкаяВойти и решать
Дениска думает, что он может сказать сколько уникальных чисел в последовательности, которую придумал Мишка. Помогите Дениске. Напишите для него программу, которая выполнит все вычисления за него.

(На языке Python программу можно написать в одну строчку. Попробуйте!)

Входные данные
На вход подается последовательность чисел.

Выходные данные 
Выведите на экран сколько в последовательности встречается различных чисел. 

 
Примеры
Входные данные Выходные данные
1 4 5 7 2 3 3 2  5
✓ 2 352✗ 1 502100лёгкаяВойти и решать
На входе в общежитие стоит турникет. Чтобы через него пройти, требуется приложить пропуск. Пропуск надо прикладывать и при входе в общежитие и при выходе из него. Для того, чтобы исключить несанкционированные проходы, пропуск не работает два раза подряд на вход и два раза подряд на выход.

Однако, хитрые студенты придумали, как обойти это ограничение. Чтобы войти или выйти вдвоем по одному пропуску, они прикладывают его с нужной стороны, потом с противоположной, но никто не проходит, а затем снова с нужной. 

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

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

Входные данные
В первой строке задано два числа n и dt — число записей в журнале событий турникета и ограничение времени, выбранное начальником охраны, соответственно (1≤n≤1000, 3≤dt≤1440).
В следующих nn строках даны записи в журнале событий в хронологическом порядке. Запись в журнале состоит из трех частей, разделенных пробелом:
  •  Время события в формате hh:mm
  •  Фамилия студента, состоящая из не более чем 20 букв латинского алфавита, первая из которых заглавная.
  •  Тип события: in, если произошел вход и out, если произошел выход.

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


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

Ввод Вывод
6 10
01:23 Petrov in
01:24 Ivanov out
01:25 Petrov out
01:27 Ivanov in
01:32 Petrov in
01:33 Ivanov out
1
Petrov
6 10
01:23 Petrov in
01:24 Ivanov out
01:25 Petrov out
01:27 Ivanov in
01:33 Petrov in
01:34 Ivanov out
0



 

На некоторых кросс-платформенных станциях метро (как, например, "Третьяковская") на разные стороны платформы приходят поезда разных направлений. Таня договорилась встретиться с подругой на такой станции, но поскольку подруга приехала из другого часового пояса, то из-за джетлага сильно проспала, и Тане пришлось долго её ждать. Поезда всегда ходят точно по расписанию, и Таня знает, что поезд стоит на платформе ровно одну минуту, а интервал между поездами (время, в течение которого поезда у платформы нет) составляет a минут для поездов на первом пути и b минут для поездов на втором пути. То есть на первый путь приезжает поезд и стоит одну минуту, затем в течение a минут поезда у платформы нет, затем в течение одной минуты у платформы стоит следующий поезд и т. д.

Пока Таня стояла на платформе, она насчитала n поездов на первом пути и m поездов на втором пути. Определите минимальное и максимальное время, которое Таня могла провести на платформе, или сообщите, что она точно сбилась со счёта.

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

Входные данные
Первая строка входных данных содержит число a - интервал между поездами на первом пути. Вторая строка содержит число b - интервал между поездами на втором пути. Третья строка содержит число n - количество поездов на первом пути, которые увидела Таня. Четвёртая строка
содержит число m - количество поездов на втором пути, которые увидела Таня. Все числа - целые,
от 1 до 1000.

Выходные данные
Программа должна вывести два числа: минимальное и максимальное время в минутах, которое Таня могла стоять на платформе, или одно число -1, если Таня точно ошиблась.
 
Ввод Вывод
1
3
3
2
5 7
1
5
1
2
-1

Замечание: В первом примере по первому пути поезда ходят через 1 минуту. По второму - через 3. Стоя на платформе 5, 6 или 7 минут, Таня могла насчитать 3 поезда на первом пути и 2 на втором.
 
Напишите программу, которая вычисляет значение переменной y по формуле:
y=(1-x2+2,5x3+x4)2

Значение переменной x задается с клавиатуры. Типы переменных x и y определите самостоятельно.
Вывести значение переменной y на экран
Напишите программу, которая вычисляет значение переменной y по формуле:
y = (1 - x2+ 2,5x+ x4)2

Значение переменной x задается с клавиатуры. Типы переменных x и y определите самостоятельно.
Вывести значение переменной y на экран.


Пример входных и выходных данных. 
Входные данные Выходные данные
2 1089
Напишите программу, которая определяет расстояние между двумя точками с заданными координатами x1 и x2 на числовой оси. Расстояние между двумя точками вычисляется по формуле \(|x_2 - x_1|\).
В первой строке ввода содержится два вещественных числа. Вывести одно вещественное число – расстояние между двумя точками. Округлите ответ до 3-х знаков после запятой.
 
Примеры
Входные данные Выходные данные
1 100000 0 100000.000
Напишите программу, которая определяет расстояние между двумя точками с заданными координатами x1 и x2 на числовой оси. Расстояние между двумя точками вычисляется по формуле |x2 − х1|.
В первой строке ввода содержится вещественное число x1, во второй - вещественное число x2. Вывести одно вещественное число – расстояние между двумя точками.
Пример входных и выходных данных.
Входные данные Выходные данные
1000
0
1000
Напишите программу, которая вычисляет значение выражения по известной формуле.

\({x + y\over {x +1}}-{x\cdot y-12 \over 34 + x}\)

x и y - переменные целого типа, вводятся с клавиатуры.

Программа должна вывести одно число - результат вычисления выражения.

Подсказка: не забудьте, что при делении необходимо получить вещественное число!
Напишите программу, которая вычисляет значение выражения по известной формуле:

\({x + y\over {x +1}}-{x\cdot y-12 \over 34 + x}\)

x и y - переменные целого типа, вводятся с клавиатуры.

Программа должна вывести одно число - результат вычисления выражения.

Подсказка: не забудьте что при делении необходимо получить вещественное число!

Пример входных и выходных данных.
Входные данные Выходные данные
1
2
1,78571428571429
С клавиатуры вводится трехзначное число. 
Напишите программу, которая выводит через пробел в одну строку:
сумму цифр числа и новое число, образованное перестановкой единиц и десятков
С клавиатуры вводится трехзначное число. 
Напишите программу, которая выводит через пробел в одну строку:
сумму цифр числа и новое число, образованное перестановкой единиц и десятков.

Пример входных и выходных данных.
Входные данные Выходные данные
365 14 356
Напишите программу, которая по заданным двум числам a и b, выводит на экран результат целочисленного деления и остаток, в заданном формате.

На вход программы подается два числа: a и b.
Необходимо вывести две строки:
в первой строке - результат целочисленного деления a на b.
во второй строке - остаток от деления a на b.

Пример.
Ввод Вывод
15
6
15/6=2
15%6=3

 
Напишите программу, которая по заданным двум числам a и b, выводит на экран результат целочисленного деления и остаток, в заданном формате (смотри примеры)

На вход программы подается два числа: a и b
Необходимо вывести две строки:
в первой строке - результат целочисленного деления a на b
во второй строке - остаток от деления a на b
Форма вывода смотри в примере входных и выходных значений

Пример входных и выходных данных
Входные данные
15 6
Выходные данные
15 div 6 = 2
15 mod 6 = 3
✓ 169✗ 1 042300лёгкаяВойти и решать

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

Каждая задача тестируется на некотором числе тестов. Результаты каждого теста отображаются в окне результатов. 
Ваша цель - за каждую задачу получить 100% выполненных тестов. 

Удачи!
 

Программа
var 
    a, b: longint;
begin
    read(a, b);
    writeln(a + b)
end.

 

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