Top.Mail.Ru
Ответы

Питон прога пж помогите

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

По дате
По Рейтингу
Аватар пользователя
Ученик
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
 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]) 
Удаленный ответ Ответ удалён