"""Массив размером 2m + 1, где m – натуральное число, заполнен случайным образом. Найдите в массиве медиану. Медианой
называется элемент ряда, делящий его на две равные части: в одной находятся элементы, которые не меньше медианы,
в другой – не больше медианы. Задачу можно решить без сортировки исходного массива. Но если это слишком сложно,
то используйте метод сортировки, который не рассматривался на уроках """

from random import randint

m = int(input('(вариант 1) Введите число для задания размера массива: '))
massive = [randint(0, 100) for j in range(2 * m + 1)]
print(f'исходный массив: \n {massive} ')
for i in range(len(massive)):
    maxi = 0
    mini = 0
    check = massive[0]
    massive.pop(0)
    for el in massive:
        if maxi > m or mini > m:        # Если число больше или меньше половины чисел + 1
            continue                    # Это не наше число, прерываем дальнейшее сравнение
        if check >= el:                 # Число будет медианой, если оно больше и меньше
            maxi += 1                   # Одинакового кол-ва чисел в массиве
        elif check <= el:               # Если на данной итерации число равно числу в массиве
            mini += 1                   # Мы прибавим по единице и в maxi и в mini
    massive.append(check)               # Если достигли такого условия - выходим из программы, медиана найдена
    if maxi == mini:
        print(f'{check} является медианой')
        break


"""---------Вариант 2---------"""

m = int(input('(вариант 2) Введите число для задания размера массива: '))
massive = [randint(0, 100) for j in range(2 * m + 1)]
print(f'исходный массив: \n {massive} ')
for i in range(m):                              # Медиана должна быть меньше или равна половине чисел массива
    massive.remove(max(massive))                # Поэтому отбросим ровно столько максимумов из массива.
print(f'{max(massive)} является медианой')      # Следующим максимумом будет медиана.
