3 задачи для универа
500 UAHЗадача А. Столовая
Вася только устроился в компанию, но уже успел полюбить столовую в офисе. Теперь он каждый день ходит в эту столовую, где на выбор предлагается 𝑛 различных блюд. Известно, что 𝑖-е блюдо стоит 𝑥𝑖 рублей. Вася планирует в ближайшие 𝑞 дней покупать по одному блюду в день. Он решил, что в 𝑖-ый день он не хочет тратить на еду больше, чем 𝑚𝑖 рублей. Помогите Васе узнать, насколько велик будет выбор блюд для него в каждый из дней, если компания оплатит Васе половину стоимости обеда.
Входные данные
В первой строке входных данных содержится целое число 𝑛 (1 ≤ 𝑛 ≤ 200000) — количество блюд в столовой. Во второй строке входных данных содержится 𝑛 чисел 𝑥𝑖 (1 ≤ 𝑥𝑖 ≤ 200000) — цена 𝑖-го блюда. В третьей строке входных данных содержится число 𝑞 (1 ≤ 𝑞 ≤ 200000) — количество дней, в течение которых Вася планирует ходить в столовую. В следующих 𝑞 строках входных данных содержатся целые числа 𝑚𝑖 (1 ≤ 𝑚𝑖 ≤ 200000) — количество денег, которое есть у Васи в 𝑖-й день.
Выходные данные
Выведите 𝑞 целых чисел (каждое число в новой строке), 𝑖-е из которых должно равняться количеству блюд, на которые у Васи может хватить денег в день 𝑖.
Пример
Входные данные
5
6 20 16 12 22
4
1
10
3
11
Выходные данные
0
4
1
5
Примечание
В первом запросе ни на одно блюдо Васе не хватит денег (он может купить блюдо максимальной стоимостью 2 рубля – один он оплатил бы сам, а второй компания). Во втором запросе Васе хватит денег, чтобы купить одно из четырех первых блюд. В третьем запросе Васе хватит денег только на первое блюдо. И в последнем запросе Вася может позволить себе любое блюдо.
| Тип | Batch | |
|---|---|---|
| Ограничение по времени | 2 секунды | |
| Ограничение по памяти | 256 МБ | |
| Команды компиляции | C++11 / g++ | /usr/bin/g++ -DEVAL -std=c++11 -O2 -pipe -static -s -o A A.cpp |
Задача B. Путь на работу
Добираться Васе до офиса не так уж и сложно — от метро до офиса компании курсирует шаттл. Будем считать, что он едет по прямой от метро (точка 0) до офиса (точка 𝑠) и обратно, преодолевая 1 метр за 𝑡1 секунд в обоих направлениях. То есть шаттл ходит равномерно прямолинейно, мгновенно разворачиваясь в точках 𝑥 = 0 и 𝑥 = 𝑠. В точке 𝑥1 находится Вася. Ему нужно попасть в точку 𝑥2. Он преодолевает 1 метр за 𝑡2 секунд. Вам нужно определить минимальное время, за которое Вася сможет добраться из точки 𝑥1 в точку 𝑥2, если известно, где находится шаттл и в каком направлении он едет в момент, когда Вася пришел в точку 𝑥1. Вася может неограниченное количество раз заходить в шаттл в любой момент времени, когда позиции его и шаттла совпадают. Точки, в которых Вася может заходить и выходить из шаттла, не обязательно целочисленные. Считайте, что любая высадка/посадка происходит мгновенно. Вася может произвольным образом перемещаться по прямой (но не быстрее, чем 1 метр за 𝑡2 секунд) или даже стоять на месте.
Входные данные В первой строке следуют три целых числа 𝑠, 𝑥1 и 𝑥2 (2 ≤ 𝑠 ≤ 1000, 0 ≤ 𝑥1, 𝑥2 ≤ 𝑠, 𝑥1 ≠ 𝑥2) — максимальная координата точки, до которой доезжает шаттл, точка, в которой находится Вася и точка, в которую ему нужно попасть. Во второй строке следуют два целых числа 𝑡1 и 𝑡2 (1 ≤ 𝑡1,𝑡2 ≤ 1000) — время в секундах, за которое шаттл преодолевает 1 метр, и время в секундах, за которое Вася преодолевает 1 метр. В третьей строке следуют два целых числа 𝑝 и 𝑑 (1 ≤ 𝑝 ≤ 𝑠 − 1, 𝑑 равняется 1 или −1) — позиция шаттла в момент, когда Вася пришел в точку 𝑥1, а также направление движения шаттла в этот же момент. Если 𝑑 = −1, то шаттл движется к метро (то есть в направлении от точки 𝑠 в точку 0). Если 𝑑 = 1, то шаттл движется к офису (то есть в направлении от точки 0 в точку 𝑠).
Выходные данные Выведите минимальное время в секундах, за которое Вася может добраться из точки 𝑥1 в точку 𝑥2.
Примеры
Входные данные
4 2 4
3 4
1 1
Выходные данные
8
Входные данные
5 4 0
1 2
3 1
Выходные данные
7
Примечание
В первом примере Васе выгоднее пойти пешком. Таким образом, ему нужно пройти 2 метра, и он сможет это сделать суммарно за 8 секунд, так как он преодолевает 1 метр за 4 секунды. Во втором примере он может, например, пойти в сторону точки 𝑥2 и дойти до точки с координатой 1 за 6 секунд (так как ему нужно пройти для этого 3 метра, а он преодолевает 1 метр за 2 секунды). В этот момент времени, шаттл также будет находиться в точке 1, поэтому Вася может зайти в него, и доехать оставшийся 1 метр за 1 секунду. Таким образом, Вася доберётся до точки 𝑥2 суммарно за 7 секунд.
| Тип | Batch | |
|---|---|---|
| Ограничение по времени | 1 секунда | |
| Ограничение по памяти | 256 МБ | |
| Команды компиляции | C++11 / g++ | /usr/bin/g++ -DEVAL -std=c++11 -O2 -pipe -static -s -o B B.cpp |
Задача C. Чаты
Для общения с коллегами Вася использует корпоративный мессенджер. Список чатов в нем работает стандартным образом: при отправке\получении сообщения чат с собеседником поднимается на самый верх списка. Относительный порядок всех остальных чатов при этом не изменяется. Если ранее чата с этим собеседником не было, то просто в верх списка чатов вставляется новый. Когда Вася только пришел в компанию, список его чатов, очевидно, был пуст. Вам нужно по истории сообщений построить список чатов Васи.
Входные данные
В первой строке записано целое число 𝑛 (1 ≤ 𝑛 ≤ 300 000) — количество сообщений. Далее в 𝑛 строках перечислены адресаты сообщений в порядке отправки\получения сообщений. Имя каждого адресата — непустая последовательность строчных букв английского алфавита длины не более 10.
Выходные данные
Выведите всех адресатов, с кем общался Вася, в порядке расположения чатов с ними сверху вниз.
Пример
Входные данные
4
alex
ivan
roman
ivan
Выходные данные
ivan
roman
alex
Входные данные
8
alina
maria
ekaterina
darya
darya
ekaterina
maria
alina
Выходные данные
alina
maria
ekaterina
darya
| Тип | Batch | |
|---|---|---|
| Ограничение по времени | 2 секунды | |
| Ограничение по памяти | 256 МБ | |
| Команды компиляции | C++11 / g++ | /usr/bin/g++ -DEVAL -std=c++11 -O2 -pipe -static -s -o C C.cpp |
Додатки 3
Відгук замовника про співпрацю з Денисом Костваровим
3 задачи для универаОтличный прогер. Даже в 12 ночи поможет с решением)
![]()
Відгук фрилансера про співпрацю з замовником
3 задачи для универаОтличный заказчик , рекомендую!
-
228 14 0 1 Готов выполнить ваше задание.
Пишите на почту: [email protected]
или в лс
Актуальні фриланс-проєкти в категорії C та C++
Порівняльний аналіз ефективності кастомного ПЗ (v2.2-field) та еталонного ПЗ (Meshtastic v2.x)
1000 UAH
Порівняльний аналіз ефективності кастомного ПЗ (v2.2-field) та еталонного ПЗ (Meshtastic v2.x) на ідентичній апаратній платформі (ESP32 + SX1268, 2W) за критеріями дальності, пропускної спроможності, стабільності лінка та енергоспоживання. Провести тести з вимірюваннями з… C та C++, C# ∙ 4 дні 3 години тому ∙ 2 ставки |
Консультація та аудит поточного проєкту на Odoo 19 Community EditionШукаємо Odoo Developer — соло-розробника з досвідом розробки на Odoo 19 Community Edition, у тому числі за допомогою Claude Code. Нам потрібен спеціаліст, який має успішно реалізовані проєкти в Odoo та практичний досвід розробки з використанням Claude Code. Важливо: розглядаємо… C та C++, Javascript та Typescript ∙ 7 днів 4 години тому ∙ 8 ставок |
Розробка ПЗ для Arduino (RF-модулі 3–7.5 ГГц, автоматичне сканування частот)Потрібно розробити систему на Arduino для автоматичного пошуку активного аналогового відеосигналу та автоматичного налаштування передавача на виявлену частоту.Планується використання трьох окремих приймально-передавальних модулів: 3000–4200 МГц; 4900–6000 МГц; 6100–7500… C та C++, Вбудовані системи та мікроконтролери ∙ 8 днів 5 годин тому ∙ 4 ставки |
Чорна Україна (RP-проект на базі MTA)
51 835 UAH
|