ЕГЭ-26. Обработка массива целых чисел. Сортировка

12 задач
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Вы работаете с классическим датасетом Boston Housing Dataset, который содержит информацию о ценах на недвижимость в пригородах Бостона. Датасет включает 13 признаков, влияющих на медианную стоимость домов. Ваша задача — построить модель множественной линейной регрессии и проанализировать факторы, влияющие на цену.

Описание признаков:  

Признак Описание Единицы
crim Уровень преступности на душу населения %
zn Доля жилых зон для участков > 25,000 кв. футов %
indus Доля промышленных площадей %
chas Расположение у реки (1 = да, 0 = нет) бинарный
nox Концентрация оксида азота (загрязнение воздуха) ppm
rm Среднее количество комнат в доме количество
age Доля домов, построенных до 1940 года %
dis Средневзвешенное расстояние до центров занятости единицы
rad Индекс доступности радиальных магистралей индекс
tax Ставка налога на имущество $ за $10,000
ptratio Соотношение учеников к учителям число
lstat % населения с низким статусом %
medv Медианная стоимость дома (целевая переменная) $1000

Задание

  1. Загрузите датасет из прикрепленного файла
  2. Выберите 5 наиболее важных признаков для модели:
    • rm (количество комнат)
    • lstat (% населения с низким статусом)
    • ptratio (соотношение учеников к учителям)
    • dis (расстояние до центров занятости)
    • crim (уровень преступности)
  3. Создайте X (признаки) и y (целевая переменная medv)
  4. Создайте и обучите модель LinearRegression
  5. Сделайте поиск ближайшего дома для следующих характеристик:
    • rm = 6.5 (количество комнат)
    • lstat = 10.0 (% населения с низким статусом)
    • ptratio = 18.0 (соотношение учеников к учителям)
    • dis = 4.0 (расстояние до центров занятости)
    • crim = 0.5 (уровень преступности)
Формат ответа:
Выведите целую часть цены дома из датасета, который наиболее близок к предсказанному.

Примечание
1)  Для разделения данных на обучающую и тестовую выборки используйте следующие параметры: test_size=0.2, random_state=42
Организация купила для своих сотрудников все места в нескольких подряд идущих рядах на концертной площадке. Известно, какие места уже распределены между сотрудниками. Найдите ряд
с наибольшим номером, в котором есть два соседних места, таких что слева и справа от них в том же ряду места уже распределены (заняты). Гарантируется, что есть хотя бы один ряд, удовлетворяющий этому условию. В ответе запишите два целых числа: номер ряда и наименьший номер места из найденных в этом ряду подходящих пар свободных мест.
 
Входные данные
В первой строке входного файла находится число N –– количество занятых мест (натуральное число, не превышающее 10 000). Каждая из следующих N строк содержит два натуральных числа,
не превышающих 100 000: номер ряда и номер занятого места.
 
Выходные данные
Два целых неотрицательных числа: номер ряда и наименьший номер места в выбранной паре.
Пример входного файла:
7
40 3
40 6
60 33
50 125
50 128
50 64
50 67
 
Условию задачи удовлетворяют три пары чисел: 40 и 4, 50 и 126, 50 и 65. Ответ для приведённого примера:
 
50 65
В магазине для упаковки подарков есть N кубических коробок. Самой интересной считается упаковка подарка по принципу матрёшки – подарок упаковывается в одну из коробок, та в свою очередь в другую коробку и т.д. Одну коробку можно поместить в другую, если длина её стороны хотя бы на 11 единиц меньше длины стороны другой коробки. Определите наибольшее количество коробок, которое можно использовать для упаковки одного подарка, и максимально возможную длину стороны самой маленькой коробки, где будет находиться подарок. Размер подарка позволяет поместить его в самую маленькую коробку.
Входные данные
В первой строке входного файла находится число N – количество коробок в магазине (натуральное число, не превышающее 10 000). В следующих N строках находятся значения длин сторон коробок (все числа натуральные, не превышающие 10 000), каждое – в отдельной строке.
Запишите в ответе два целых числа: сначала наибольшее количество коробок, которое можно использовать для упаковки одного подарка, затем максимально возможную длину стороны самой маленькой коробки в таком наборе.
Типовой пример организации данных во входном файле
5
43
40
32
40
30
Пример входного файла приведён для пяти коробок и случая, когда минимальная допустимая разница между длинами сторон коробок, подходящих для упаковки «матрёшкой», составляет 3 единицы.
При таких исходных данных условию задачи удовлетворяют наборы коробок с длинами сторон 30, 40 и 43 или 32, 40
и 43 соответственно, т.е. количество коробок равно 3, а длина стороны самой маленькой коробки равна 32.
Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемых файлов.
 

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются все пары различных элементов последовательности, находящихся на расстоянии кратном 5 (разница в индексах элементов пары должна быть кратна 5, порядок элементов в паре не важен). Необходимо определить пару с максимальной суммой кратной 7. Если таких пар несколько, программа должна вывести любую из них.

Входные данные
В первой строке входных данных задаётся количество чисел N (\(1 <= N <= 10000\)). В каждой из последующих N строк записано одно целое положительное число, не превышающее 10 000.

Выходные данные
Программа должна вывести в первой строке два числа: пару элементов с максимальной суммой, находящихся в последовательности на расстоянии кратном 5, в которой сумма элементов кратна 7. Если ни одной подходящей пары нет, нужно вывести одно число 0.

 

Примеры
Входные данные Выходные данные
1 10
1
6
3
140
6
6
7
11
7
15
7 140

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются все пары различных элементов последовательности (элементы пары не обязаны стоять в последовательности рядом, порядок элементов в паре неважен). Необходимо определить пару с максимальной разностью, элементы которой находятся на расстоянии кратном K. Если таких пар несколько, вывести любую.

Входных данные
В первой строке входных данных задаётся количество чисел N и значение K (\(K+1 <= N <= 10000\)). В каждой из последующих N строк записано одно натуральное число, не превышающее 10000.

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

 

Примеры
Входные данные Выходные данные
1 8 3
1
90
3
81
89
4
71
7
90 7
На вход программы поступает последовательность из N целых положительных чисел, все числа в последовательности различны. Рассматриваются все пары различных элементов последовательности, находящихся на расстоянии не меньше 4 (разница в индексах элементов пары должна быть 4 или более, порядок элементов в паре неважен). Необходимо определить количество таких пар, для которых сумма элементов кратна 8.

Входные данные
В первой строке входных данных задаётся количество чисел N (\(5 <= N <= 1000\)). В каждой из последующих N строк записано одно целое положительное число, не превышающее 10 000. 

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

 

Примеры
Входные данные Выходные данные Комментарий
1




15 
23 
31
4 Найденные пары: (1,15) (1,23) (1,31) (9,31)
АЗС#15827

На автозаправочных станциях (АЗС) продается бензин с маркировкой 92, 95 и 98. В городе N был проведен мониторинг цены бензина на различных АЗС. 

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

На вход программе в первой строке подается число данных N о стоимости бензина. В каждой из последующих N строк находится информация в следующем формате: 
<Компания> <Улица> <Марка> <Цена>

где <Компания> – строка, состоящая не более, чем из 20 символов без пробелов;
- <Улица> – строка, состоящая не более, чем из 20 символов без пробелов;
- <Марка> – одно из чисел – 92, 95 или 98;
- <Цена> – целое число в диапазоне от 1000 до 3000, обозначающее стоимость одного литра бензина в копейках. 

<Компания> и <Улица>, <Улица> и <Марка>, а также <Марка> и <Цена> разделены одним пробелом.

Пример входной строки: 
Синойл Цветочная 95 2250 
Программа должна выводить через пробел 3 числа – количество АЗС, продающих дешевле всего бензин марки 92, 95 и 98 соответственно. Если бензин какой-то марки нигде не продавался, то следует вывести 0. 

Пример выходных данных: 
12 1 0

Школьная олимпиада по информатике проводилась для учеников 7-11-х классов, участвующих в общем конкурсе. Каждый участник олимпиады мог набрать от 0 до 70 баллов. Для определения призеров олимпиады, сначала отбираются 25% участников, показавших лучшие результаты. Если у последнего участника, входящего в 25%, оказывается такое же количество баллов, как и у следующих за ним в итоговой таблице, все они считаются призерами только тогда, когда набранные ими баллы больше половины максимально возможных. Иначе все они не считаются призерами.

Напишите эффективную по времени работы и по используемой памяти программу, которая по результатам олимпиады будет определять минимальный балл призера олимпиады, и количество призеров в каждой параллели (среди 7-х, 8-х, 9-х, 10-х и 11-х классов отдельно). Гарантируется, что, хотя бы одного призера по указанным правилам, определить можно.

На вход программе сначала подается число участников олимпиады N. В каждой из следующих N строк находится результат одного из участников олимпиады в следующем формате:

<Фамилия> <Имя> <класс> <баллы>,

где <Фамилия> – строка, состоящая не более, чем из 30 символов;
- <Имя> – строка, состоящая не более, чем из 15 символов;
- <класс> – число от 7 до 11;
- <баллы> – целое число от 0 до 70 набранных участником баллов.
<Фамилия> и <Имя>, <Имя> и <класс>, а также <класс> и <баллы> разделены одним пробелом.


Пример входной строки:
Семенов Сидор 11 66
Программа должна выводить в первой строке минимальный балл призера, а в следующей – число призеров по всем параллелям отдельно. 

Пример выходных данных:
63 
1 5 8 12 22

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

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

В первой строке вводится количество абитуриентов, принимавших участие в тестировании, N. Далее следует N строк, имеющих следующий формат: 

<Фамилия> <Имя> <Баллы>,
где <Фамилия> – строка, состоящая не более чем из 20 символов;
<Имя> – строка, состоящая не более, чем из 15 символов;
<Баллы> – строка, содержащая два целых числа, разделенных пробелом – баллы, полученные на тестировании по каждому из двух предметов.
При этом <Фамилия> и <Имя>, <Имя> и <Баллы> разделены одним пробелом.

Пример входной строки:
Романов Вельямин 48 39
 
Напишите программу, которая будет выводить на экран фамилии и имена абитуриентов, потерпевших неудачу, то есть не допущенных к сдаче экзаменов в первом потоке. При этой фамилии должны выводиться в алфавитном порядке.
 
В соревнованиях по многоборью (из M видов спорта) участвуют N спортсменов (\(N < 1000\)) . На вход программе в первой строке подается число спортсменов N, во второй – число видов спорта M. В каждой из последующих N строк находится информация в следующем формате: 
<Фамилия> <Имя> <Баллы> ,
где <Фамилия> – строка, состоящая не более, чем из 20 символов без пробелов;
- <Имя> – строка, состоящая не более, чем из 12 символов без пробелов;
- <Баллы> – M целых чисел, обозначающие количество баллов, набранных спортсменом в каждом из видов многоборья. 
<Фамилия> и <Имя>, <Имя> и <Баллы>, а также отдельные числа в поле <Баллы> разделены ровно одним пробелом.
Пример входных строк: 
3
4
Иванов Сергей 100 30 78 13
Петров Антон 90 16 98 14
Сидоров Юрий 100 70 30 21 

Программа должна выводить результирующую таблицу, содержащую список спортсменов, отсортированный по убыванию суммы баллов, набранные суммы и занятые места.
В данном случае программа должна вывести: 
Иванов Сергей 221 1
Сидоров Юрий 221 1
Петров Антон 218 2
На вход программы подаются сведения о результатах соревнований по школьному многоборью. Многоборье состоит из соревнований по четырем видам спорта, участие в каждом из которых оценивается баллами от 0 до 10 (0 баллов получает ученик, не принимавший участия в соревнованиях по данному виду спорта). Победители определяются по наибольшей сумме набранных баллов. Известно, что общее количество участников соревнований не превосходит 100.
В первой строке вводится количество учеников, принимавших участие в соревнованиях, N. Далее следуют N строк, имеющих следующий формат: 
<Фамилия> <Имя> <Баллы> ,
где:
- <Фамилия> – строка, состоящая не более чем из 20 символов;
- <Имя> – строка, состоящая не более чем из 15 символов;
- <Баллы> - строка, содержащая четыре целых числа, разделенных пробелом, соответствующих баллам, полученным на соревнованиях по каждому из четырех видов спорта.
При этом <Фамилия> и <Имя>, <Имя> и <Баллы> разделены одним пробелом.

Примеры входных строк:        
Иванова Мария 5 8 6 3
Петров Сергей 9 9 5 7

Напишите программу, которая будет выводить на экран фамилии и имена трех лучших участников многоборья. Если среди остальных участников есть ученики, набравшие то же количество баллов, что и один из трех лучших, то их фамилии и имена также следует вывести. При этом имена и фамилии можно выводить в произвольном порядке.
 
7092#7092
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать произвольные целые значения. Напишите программу, которая находит и выводит номера двух элементов массива (через пробел в порядке возрастания номеров), наименее отличающихся друг от друга.

Элементы массива вводятся по одному в строке
Поделиться
Класснуть