Excel. Алгоритм подготовки данных к сортировке

1. Скопировать всё из текстового файла (CTRL+A и CTRL+C)
2. Выделить ячейки столбцов A и B и поменять их на текстовый формат
3.  Перенести данные в таблицу Excel (CTRL+B)

             ИЛИ

1-2-3. "Файл" "Открыть" - находим папку с нужным файлом - выбираем отображение всех типов файлов "Все файлы (*.*)"

4. Разделяем данные по столбцам с помощью "Мастер импорта текста": "Данные" - "Работа с данными" - "Текст по столбцам" - на шаге 2 отмечаем "пробел" - "Готово".

5. Сортируем данные по возрастанию и убыванию.

Python. Алгоритм решения задач на скидки

1. Отобрать все товары, которые могут участвовать в скидке.
2. К половине полученных товаров применить скидку.
3. Добавить в сумму оставшиеся товары.

Python. Алгоритм подготовки данных к сортировке

1. Открыть файл на чтение
2. Получить служебные банные из первой строки:
 - содержится 1 величина - считать строку и преобразовать в число;
 - содержится 2 величины - считать строку, разбить на элементы по пробелу и записать соответствующие переменные с преобразованием в целое число.
3. Создать и заполнить массив ы цикле, считывая и преобразуя строки из файла или воспользоваться генерацией списка.

Шаблон программы решения задач на “скидки”:

f = open("26.txt")
N = int(f.readline())
S = 0
discount = []

for i in range(N):
    x = int(f.readline())
    if x <сумма, с которой начисляется скидка>:
        discount.append(x)
    else:
        S += x    # вычисляем сумму товаров без скидки
discount.sort()
half = len(discount) // 2    # количество товаров, на которые будет сделана скидка
skidka = discount[:half]    # массив товаров со скидкой
not_skidka = discount[half:]    # массив товаров, на которые скидка не применяется

Summa = S + sum(skidka) * (1 - <процент скидки> / 100>) + sum(not_skidka)
# итоговая сумма = товары без скидки + товары со скидкой + товары, на которые скидка не применилась
print(Summa, skidka[- 1])
f.close()

Пример задания

Входной файл содержит заявки пассажиров, желающих сдать свой багаж в камеру хранения. В заявке указаны время сдачи багажа и время освобождения ячейки (в минутах от начала суток). Багаж одного пассажира размещается в одной свободной ячейке с минимальным номером. Ячейки пронумерованы начиная с единицы. Размещение багажа в ячейке или её освобождение происходит в течение 1 мин. Багаж можно поместить в только что освобождённую ячейку начиная со следующей минуты. Если в момент сдачи багажа свободных ячеек нет, то пассажир уходит. Определите, сколько пассажиров сможет сдать свой багаж в течение 24 ч и какой номер будет иметь ячейка, которую займут последней. Если таких ячеек несколько, укажите минимальный номер ячейки.

ФАЙЛ >>

Входные данные
В первой строке входного файла находится натуральное число K, не превышающее 1000, – количество ячеек в камере хранения. Во второй строке – натуральное число N (N ≤ 1000), обозначающее количество пассажиров. Каждая из следующих N строк содержит два натуральных числа, каждое из которых не превышает 1440: указанное в заявке время размещения багажа в ячейке и время освобождения ячейки (в минутах от начала суток). Запишите в ответе два числа: количество пассажиров, которые смогут воспользоваться камерой хранения, и номер последней занятой ячейки.

f = open('26.txt')

K = int(f.readline())      # количество ячеек в камере хранения

N = int(f.readline())      # количество пассажиров

# создаем список из данных о времени размещения и освобождения ячейки

baggage = []     # пустой список

for i in f:     # перебираем строки в файле

    x = i.split()      # разделяем строку по пробелу

    baggage.append([int(x[0]), int(x[1])])     # преобразуем к целочисленному типу два числа строки

baggage.sort()     # сортируем двумерный массив по возрастанию

cell = [0] * K       # ячейки камеры хранения

# индекс элемента = номер ячейки (-1); значения элемента = время освобождения ячейки

count = 0      # кол-во пассажиров, которые воспользовались камерой хранения
number = 0      # номер последней занятой ячейки

for time in baggage:      # time - элемент двумерного списка, состоящий из двух чисел:

    # время размещения и освобождения ячейки

    for i in range(K):     # перебираем ячейки

        if time[0] > cell[i]:     # и проверяем сможет ли она принять текущего пассажира

            cell[i] = time[1]     # если да, то меняем время освобождения ячейки

            count += 1           # увеличиваем количество пассажиров, воспользовавшихся камерой
            number = i + 1      # сохраняем номер последней использованной ячейки

            break     # останавливаем поиск свободной ячейки

print(count, number)

f.close()

Ответ: 344 53