Питон прога пж помогите
1)
Последовательность чисел назовём симметричной, если она одинаково читается как слева направо, так и справа налево. Например, следующие последовательности являются симметричными:
123454321
12122121
123454321
12122121
Вашей программе будет дано
�
K последовательностей чисел. Требуется определить, какое минимальное количество и каких чисел надо приписать в конец каждой последовательности, чтобы она стала симметричной.
Входные данные
Программа получает на вход количество последовательностей
𝐾
(
𝐾
⩽
1000
)
K(K⩽1000), далее для каждой последовательности подается количество элементов этой последовательности
𝑁
(
1
⩽
𝑁
⩽
1000
)
N(1⩽N⩽1000). Далее идут
�
N чисел — элементы этой последовательности, натуральные числа.
Выходные данные
Для каждой последовательности выведите сначала число
�
M — минимальное количество элементов, которое надо дописать к последовательности, а потом
�
M чисел (каждое от 1 до 9) — числа, которые надо дописать к последовательности.
Sample Input:
2
9
1 2 3 4 5 4 3 2 1
5
1 2 1 2 2
Sample Output:
0
3
1 2 1
Напишите программу. Тестируется через stdin → stdout
2)
В этой задаче вам нужно реализовать сортировку выбором.
Входные данные
На вход в одной строке подается список натуральных чисел.
Выходные данные
Выводите список каждый раз на новой строке, после каждой операции, в которой числа меняются местами.
Sample Input:
5 4 5 3 3 1 2
Sample Output:
2 4 5 3 3 1 5
2 4 1 3 3 5 5
2 3 1 3 4 5 5
2 3 1 3 4 5 5
2 1 3 3 4 5 5
1 2 3 3 4 5 5
Напишите программу. Тестируется через stdin → stdout
3)
Даны два числа
�
n и
�
k. Необходимо вывести перестановку из
�
n чисел (
�
n чисел от 1 до
�
n без повторений) такую, чтобы сортировка пузырьком по возрастанию на соответствующем массиве сделала ровно
�
k обменов. Если возможных ответов несколько — выведите любой.
Входные данные
Даны натуральное число
𝑛
(
𝑛
⩽
100
)
n(n⩽100) и целое неотрицательное
�
k. Гарантируется, что для всех наборов тестовых данных решение существует.
Выходные данные
Выведите искомую перестановку в одной строке. Числа разделяйте пробелами.
Напишите программу. Тестируется через stdin → stdout
4)
В этой задаче вам нужно реализовать сортировку вставками.
Входные данные
На вход в одной строке подается список натуральных чисел.
Выходные данные
Выводите список каждый раз на новой строке, после каждой вставки числа на правильное место.
Sample Input:
5 2 4 3 1
Sample Output:
2 5 4 3 1
2 4 5 3 1
2 3 4 5 1
1 2 3 4 5
Напишите программу. Тестируется через stdin → stdout
5)
Во время проведения олимпиады каждый из участников получил свой идентификационный номер — натуральное число. Необходимо отсортировать список участников олимпиады по количеству набранных ими баллов от больших баллов к меньшим, а при равенстве баллов — по возрастанию идентификационных номеров. Встроенные алгоритмы сортировки не использовать.
Входные данные
На первой строке дано число
𝑁
(
1
⩽
𝑁
⩽
1000
)
N(1⩽N⩽1000) — количество участников. На каждой следующей строке даны идентификационный номер и набранное число баллов соответствующего участника. Все числа во входном файле не превышают
1
0
5
10
5
.
Выходные данные
Выведите исходный список в порядке убывания баллов. Если у некоторых участников одинаковые баллы, то их между собой нужно выводить в порядке возрастания идентификационных номеров.
Sample Input:
4
3 3
3 1
4 4
2 3
Sample Output:
4 4
2 3
3 3
3 1
Напишите программу. Тестируется через stdin → stdout
1)
n = int(input())
for _ in range(n):
m = int(input())
sequence = list(map(int, input().split()))
count = 0
while sequence != sequence[::-1]:
count += 1
sequence.append(sequence[count-1])
print(count)
for i in range(count):
print(sequence[-(i+1)], end=' ')
print()
2)
def selection_sort(arr):
n = len(arr)
for i in range(n-1):
min_idx = i
for j in range(i+1, n):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
print(' '.join(map(str, arr)))
arr = list(map(int, input().split()))
selection_sort(arr)
3)
n, k = map(int, input().split())
arr = list(range(1, n+1))
idx = 0
while k > 0:
arr[idx], arr[idx+1] = arr[idx+1], arr[idx]
idx += 1
k -= 1
print(' '.join(map(str, arr)))
4)
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and arr[j] > key:
arr[j+1] = arr[j]
j -= 1
arr[j+1] = key
print(' '.join(map(str, arr)))
arr = list(map(int, input().split()))
insertion_sort(arr)
5)
n = int(input())
participants = []
for _ in range(n):
id, score = map(int, input().split())
participants.append((id, score))
participants.sort(key=lambda x: (-x[1], x[0]))
for participant in participants:
print(participant[0], participant[1])