Top.Mail.Ru
Ответы

Python прога пж помогите

1)

В этой задаче вам нужно реализовать сортировку выбором.

Входные данные

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

Выходные данные

Выводите список каждый раз на новой строке, после каждой операции, в которой числа меняются местами.

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


2)

Даны два числа

n и

k. Необходимо вывести перестановку из

n чисел (

n чисел от 1 до

n без повторений) такую, чтобы сортировка пузырьком по возрастанию на соответствующем массиве сделала ровно

k обменов. Если возможных ответов несколько — выведите любой.

Входные данные

Даны натуральное число
𝑛
(
𝑛

100
)
n(n⩽100) и целое неотрицательное

k. Гарантируется, что для всех наборов тестовых данных решение существует.

Выходные данные

Выведите искомую перестановку в одной строке. Числа разделяйте пробелами.

Напишите программу. Тестируется через stdin → stdout


3)


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

Входные данные

На вход подается натуральное число

N — количество учеников в классе
(
2

𝑁

50
)
(2⩽N⩽50). Следующие
𝑁
N строк содержат по два целых числа каждая:
𝐴
𝑖
A
i

и
𝐻
𝑖
H
i

— пол и рост в сантиметрах

i-го ученика
(
0

𝐴
𝑖

1
,
100

𝐻
𝑖

200
)
(0⩽A
i

⩽1,100⩽H
i

⩽200). Значение
𝐴
𝑖
=
0
A
i

=0 означает, что

i-й ученик — мальчик, а значение
𝐴
𝑖
=
1
A
i

=1 означает, что

i-й ученик — девочка.

Выходные данные

Выведите одно число — максимальное различие в росте стоящих рядом учеников после того, как они выстроятся в шеренгу на уроке физкультуры.

Sample Input:

6
0 120
1 130
1 142
1 115
0 145
0 134
Sample Output:

22
Напишите программу. Тестируется через stdin → stdout


4)

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

Входные данные

На первой строке дано число
𝑁
(
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

По дате
По Рейтингу
Аватар пользователя
Новичок

Конечно, я могу помочь вам с написанием программ для каждой из задач.

Сортировка выбором:

12345678910111213
 def selection_sort(arr): 
    n = len(arr) 
    for i in range(n): 
        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(*arr) 
 
input_list = list(map(int, input().split())) 
selection_sort(input_list) 
 

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

12345678910111213
 def bubble_sort_permutation(n, k): 
    arr = list(range(1, n + 1)) 
    for i in range(n - 1): 
        for j in range(n - 1 - i): 
            if arr[j] > arr[j + 1]: 
                arr[j], arr[j + 1] = arr[j + 1], arr[j] 
        if i + 1 == k: 
            break 
    print(*arr) 
 
n, k = map(int, input().split()) 
bubble_sort_permutation(n, k) 
 

Максимальное различие в росте учеников:

123456789101112131415161718192021
 def max_height_difference(n, students): 
    boys = [] 
    girls = [] 
    for i in range(n): 
        gender, height = students[i] 
        if gender == 0: 
            boys.append(height) 
        else: 
            girls.append(height) 
    boys.sort(reverse=True) 
    girls.sort(reverse=True) 
    max_diff = abs(boys[0] - girls[0]) 
    print(max_diff) 
 
n = int(input()) 
students = [] 
for _ in range(n): 
    gender, height = map(int, input().split()) 
    students.append((gender, height)) 
max_height_difference(n, students) 
 

Сортировка списка участников олимпиады:

123456789101112131415
 def olympiad_sort(n, participants): 
    for i in range(n): 
        for j in range(n - 1 - i): 
            if participants[j][1] < participants[j + 1][1] or (participants[j][1] == participants[j + 1][1] and participants[j][0] > participants[j + 1][0]): 
                participants[j], participants[j + 1] = participants[j + 1], participants[j] 
    for participant in participants: 
        print(participant[0], participant[1]) 
 
n = int(input()) 
participants = [] 
for _ in range(n): 
    id, score = map(int, input().split()) 
    participants.append((id, score)) 
olympiad_sort(n, participants) 
 

Пожалуйста, попробуйте использовать эти программы для решения задач. Если у вас возникнут вопросы или потребуется дополнительная помощь, пожалуйста, сообщите мне.

Аватар пользователя
Просветленный

как-то так

Аватар пользователя
Искусственный Интеллект

Остальное сам учись решать


1234567891011121314151617
 def selection_sort(arr): 
    n = len(arr) 
 
    for i in range(n - 1): 
        min_index = i 
 
        for j in range(i + 1, n): 
            if arr[j] < arr[min_index]: 
                min_index = j 
 
        arr[i], arr[min_index] = arr[min_index], arr[i] 
        print(" ".join(map(str, arr))) 
 
if __name__ == "__main__": 
    input_list = list(map(int, input().strip())) 
    selection_sort(input_list)