Уплата налогов. Тур 1, задача 2
Стр 1 из 2Следующая ⇒ Методы сортировки Для решения многих задач необходимо упорядочить исходные данные по определенному признаку. Процесс такого упорядочения называется сортировкой. Цель сортировки – облегчить последующий поиск элементов в таком упорядоченном массиве. Порядок, при котором в массиве первым элементом является самое маленькое число, а каждое следующее больше предыдущего, а последнее – самое большое из чисел данного массива называют возрастающим. Прямо противоположный порядок – убывающим. Простые, однако, более медленные методы сортировки: 1. сортировка методом простого выбора; 2. сортировка методом простого обмена (пузырьковая сортировка) – простой в запоминании, но слишком долгий по времени; 3. сортировка методом простых вставок (метод прямого включения) – время чуть меньше пузырьковой, избегает пустых проходов, чуть быстрее пузырьковой. Сортировка выбором Сущность метода: Находится максимальный элемент и меняется местами с последним элементом массива, после чего исключается из рассмотрения. Процесс повторяется до одного элемента.
Демонстрация метода (сортировка по возрастанию):
!!! Красным выделены элементы, которые исключаются из рассмотрения.
Алгоритм сортировки выбором: For i:=n downto 2 do begin k:=i; max:=a[i]; For j:=1 to i-1 do if a[j]>max then begin max:=a[j]; k:=j End; a[k]:=a[i]; a[i]:=max End; Сортировка обменом – учим этот способ сортировки!!! Сущность метода: Если два элемента массива расположены не по порядку, то они меняются местами. Процесс повторяется до тех пор, пока элементы не будут упорядочены.
Демонстрация метода (сортировка по возрастанию):
Алгоритм сортировки обменом: For i:=1 to n-1 do For j:=1 to n-i do if a[j]>a[j+1] then begin x:=a[j]; a[j]:=a[j+1]; a[j+1]:=x end;
Сортировка методом простых вставок Сортировка этим методом заключается в следующем: на i-м шаге считается, что часть массива, содержащая первые i-1 элементов, уже упорядочена, т. е.
Смысл использования быстрой сортировки – массив из 1 миллиона элементов пузырьковой сортируется 6 минут, а быстрой 7 секунд. УЧИМ ЭТОТ СПОСОБ СОРТИРОВКИ!!!
Приведем модификацию процедуры быстрой сортировки из книги Н. Вирта. Это рекурсивная схема реализации, параметрами которой являются нижняя и верхняя границы изменения индексов сортируемой части исходного массива. ВНИМАНИЕ! Вместо команды x:=a[(m+t) div 2] рекомендуется использовать x:=a[random(t-m+1) + m]. Покупка подарков (Область-2017) Тур 1, задача 1 Зима в Байтландии – это время настоящего веселья. Недавно все праздновали Новый год, и совсем немного осталось до Дня Святого Байта – любимого праздника всех жителей Байтландии. За несколько дней до праздника Бит решил купить подарки для своих родственников и друзей. Он зашёл на сайт магазина подарков, чтобы определить, сколько денег ему понадобится для оплаты. На сайте были представлены все N товаров, имеющиеся в магазине, и указана цена ai каждого из них. Никакие два товара в магазине не имеют одинаковой цены. Бит знает, что в подарке главное не стоимость, а внимание, поэтому он решил выбрать K различных самых недорогих, но красивых и полезных подарков. Когда подарки были выбраны, Бит подготовил необходимую для их приобретения сумму денег и пошёл в магазин.
Помогите Биту определить величину сэкономленных денежных средств (на какую величину дешевле Биту обойдется приобретение выбранных K подарков).
Входные данные Первая строка входного файла содержит два целых числа N, K (1 ≤ N ≤ 105, 1 ≤ K ≤ N) – количество различных подарков в магазине и количество людей, для которых Бит хочет купить подарки, соответственно. Числа в строке разделены пробелом. Во второй строке записано N различных целых чисел ai (1 < ai ≤ 109) – цены на подарки, установленные на сайте магазина. Числа в строке разделены пробелом. В третьей строке записано N различных целых чисел bi (1 ≤ bi < ai) – цены на подарки, сниженные в результате акции. Числа в строке разделены пробелом.
Выходные данные В единственной строке выходного файла выведите сумму денег, которую Бит сможет сэкономить, если купит K подарков.
Уплата налогов. Тур 1, задача 2
В Байтландии интересная налоговая система. Как и во многих других странах, все жители должны в первый месяц года уплатить подоходный налог за прошедший год. В первых числах года каждый из N жителей получает письмо с числом A, которое сообщает, что он должен уплатить ровно A байтландских талера подоходного налога.
Чтобы заплатить подоходный налог, необходимо заполнить декларацию. Вот уже сотни лет в Байтландии принято заполнять коллективную декларацию. В неё вносится список всех граждан, и вычисляется суммарный подоходный налог. Но, чтобы при уплате налогов никто не мог узнать точную сумму налога другого гражданина, все граждане вносят в казну одинаковую сумму X. Эта величина X определяется как минимальное целое значение такое, что при уплате её каждым жителем в казну попадет не меньшая сумма, чем суммарная величина налогов по коллективной декларации. Например, если в Байтландии проживает пять граждан, и они получили письма с числами 1 10 5 6 20, то суммарная величина налога равна 42, а каждых из них по коллективному договору должен внести в казну 9 байтландских талера.
В нашем примере, если S=6, то первому гражданину выгодно отказаться от коллективного договора и заплатить 1+6=7 талеров налога вместо 9. После этого по новому коллективному договору нужно будет платить уже по 11 талеров, так как оставшимся четверым гражданам нужно уплатить не менее 41 талера. Больше никто не может сэкономить, поэтому все заплатят по 11 талеров. Налоговая инспекция просит Вас помочь. В этом году i-й житель получит письмо с числом Ai. Определите, сколько талеров подоходного налога заплатит каждый из жителей, если они всегда будут заполнять индивидуальную декларацию в тот момент, когда это им становится выгодно, т.е. когда Ai + S будет меньше величины коллективного налога.
Входные данные: Первая строка входного файла содержит два целых числа N, S (1 ≤ N ≤ 250 000, 0 ≤ S ≤ 109) – количество жителей Байтландии и комиссия за заполнение индивидуальной декларации, соответственно. Числа в строке разделены пробелом. Во второй строке записаны N чисел Ai (1 ≤ Ai ≤ 109) – величины налогов. Числа в строке разделены пробелами.
Воспользуйтесь поиском по сайту: ![]() ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|