Загрузка данных


# Считываем строку, разбиваем по пробелам и превращаем в список целых чисел
results = [int(x) for x in input().split()]

# Сортируем список по убыванию (на месте)
results.sort(reverse=True)

# Получаем топ-3 лучших результатов с помощью среза
top_3 = results[:3]

# Вычисляем средний балл топ-3. 
# Делим на len(top_3), чтобы избежать деления на ноль, если введут меньше 3 чисел
average = sum(top_3) / len(top_3)

# Выводим результат
print(f"Отсортированный список: {results}")
print(f"Топ-3: {top_3}")
print(f"Средний балл топ-3: {round(average, 2)}")
------------------------------------------------------------------------------------------
# Чтение списка чисел из одной строки
numbers = [int(x) for x in input().split()]

# 1. Количество элементов
count = len(numbers)
print(f"Количество элементов: {count}")

# 2. Сумма
total_sum = sum(numbers)
print(f"Сумма: {total_sum}")

# 3. Минимум и Максимум
print(f"Минимум: {min(numbers)}")
print(f"Максимум: {max(numbers)}")

# 4. Среднее (с округлением до 2 знаков)
average = total_sum / count
print(f"Среднее: {round(average, 2)}")

# 5. Медиана
# Для поиска медианы список нужно отсортировать по возрастанию
sorted_nums = sorted(numbers)

if count % 2 != 0:
    # Если элементов нечетное количество, берем центральный
    median = sorted_nums[count // 2]
else:
    # Если четное — среднее двух центральных
    mid1 = sorted_nums[count // 2 - 1]
    mid2 = sorted_nums[count // 2]
    median = (mid1 + mid2) / 2
    
print(f"Медиана: {median}")

# 6. Количество уникальных значений (без использования set)
unique_numbers = []
for num in numbers:
    if num not in unique_numbers:
        unique_numbers.append(num)

print(f"Уникальных значений: {len(unique_numbers)}")

# 7. Список значений, встречающихся больше одного раза
duplicates = []
for num in unique_numbers:
    # Используем метод count() для проверки частоты
    if numbers.count(num) > 1:
        duplicates.append(num)

# Сортируем результат по возрастанию (по условию)
duplicates.sort()
print(f"Повторяются: {duplicates}")
----------------------------------------------------------------------------------------------------------
# Считываем границы диапазона
a = int(input())
b = int(input())

unique_diffs = []

# Перебираем все числа от a до b включительно
for n in range(a, b + 1):
    # 1. Строим двоичную запись числа N (без префикса '0b')
    binary_n = bin(n)[2:]
    
    # 2. Удаляем первую слева единицу (срез [1:])
    # и все следующие за ней нули (метод lstrip('0'))
    remaining = binary_n[1:].lstrip('0')
    
    # 3. Переводим результат в десятичную запись
    if remaining == '':
        # Если после удаления не осталось цифр, результат 0
        new_num = 0
    else:
        new_num = int(remaining, 2)
        
    # 4. Вычисляем разность
    diff = n - new_num
    
    # 5. Добавляем результат в список, если такого еще не было
    if diff not in unique_diffs:
        unique_diffs.append(diff)

# Выводим количество уникальных значений
print(len(unique_diffs))