8«В» — Самостоятельная работа №2.
Задача 1. «Большой сдвиг»
Дан список из N (1 ≤ N ≤ 100000) целых чисел и число K
(|K| < 100000).
Циклически сдвиньте список на |K| элементов вправо,
если K — положительное, и влево, если отрицательное число.
Программа получает на вход список целых чисел, затем число K.
Пример
Ввод |
Вывод |
5 3 7 4 6 3 |
7 4 6 5 3 |
Задача 2. «Победители олимпиады»
Даны два списка: список участников олимпиады и список набранных ими баллов.
Победителем олимпиады считается школьник (или несколько школьников), набравший наибольший балл
среди участников.
Напишите программу, которая выведет фамилию победителя (или победителей, если их несколько).
В первой строке через пробел вводятся фамилии участников. Во второй строке через
пробел вводятся набранные ими баллы (целые неотрицательные числа).
Гарантируется, что количества элементов в первом и втором списках одинаковы.
Выведите фамилию победителя. Если победителей несколько, выведите их фамилии через пробел.
При этом фамилии должны быть выведены в том же порядке, в каком они идут в первой строке входных данных.
Примеры
Ввод |
Вывод |
Petrov Ivanov Sidorov
10 5 10 |
Petrov Sidorov |
Cheburashka Gena Shapoklyak Galya
20 2 3 7 |
Cheburashka |
Задача 3. «Сжатие списка»
Дан список целых чисел. Требуется “сжать” его, переместив
все ненулевые элементы в левую часть списка, не меняя их порядок, а все нули — в правую
часть. Порядок ненулевых элементов изменять нельзя, дополнительный список использовать нельзя,
задачу нужно выполнить за один-два прохода по списку. Распечатайте полученный список.
Пример
Ввод |
Вывод |
4 0 5 0 3 0 0 5 |
4 5 3 5 0 0 0 0 |
Задача 4. «Заполнение по спирали»
Дано целое N > 0. Заполните двумерный массив размером N×N
числами от 1 до N×N по спирали, как показано в примерах.
Выведите полученный массив, отводя на вывод каждого элемента ровно 4 символа.
Примеры
Ввод |
Вывод |
3 |
1 2 3 8 9 4 7 6 5 |
4 |
1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 |
Задача 5. «Кинотеатр»
В кинотеатре n рядов по m мест в каждом.
В двумерном массиве хранится информация о проданных билетах:
число 1 означает, что билет на данное место уже продан,
число 0 означает, что место свободно.
Поступил запрос на продажу k билетов на соседние места в одном ряду.
Определите, можно ли выполнить такой запрос.
Программа получает на вход числа n и m.
Далее идут n строк, содержащих по m чисел (0 или 1),
разделённых пробелами. Затем дано число k.
Программа должна вывести номер ряда, в котором есть k подряд идущих свободных мест.
Если таких рядов несколько, то выведите номер наименьшего подходящего ряда.
Если подходящего ряда нет, выведите число 0.
Пример
Ввод |
Вывод |
3 4 0 1 0 1 1 0 0 1 0 0 0 0 2 |
2 |