Всем известно, что основной целью любого крупного правительственного проекта во Флатландии является освоение бюджетных средств (разумеется, по назначению). В настоящее время во Флатландии ведется работа над m национальным проектами, i-й проект может
- Управление проектами
Условие:
Всем известно, что основной целью любого крупного правительственного проекта во Флатландии является освоение бюджетных средств (разумеется, по назначению). В настоящее время во Флатландии ведется работа над m национальным проектами, i-й проект может освоить si миллионов Флатландских тугриков в день. Правительство Флатландии планирует выделить n грантов для финансирования проектов, каждый по p миллионов Флатландских тугриков. Деньги i-го из грантов будут доступны для освоения, начиная с дня ri . Когда очередной грант становится доступен для освоения, его можно отдать некоторому проекту. Этот проект осваивает деньги гранта в течение ⌈p/s(i)⌉ дней. Проект не может одновременно осваивать деньги нескольких грантов. Премьер-министр Флатландии господин Тупиков хочет выяснить, за какое время удастся освоить все деньги, выделенные в рамках грантов. Помогите ему выяснить самый ранний день, когда можно полностью освоить все деньги грантов. Входные данные Первая строка входного файла "test1.txt" содержит числа m, n и p (1 ≤ m ≤ 100, 1 ≤ n ≤ 100, 1 ≤ p ≤ 109 ). Вторая строка содержит m целых чисел: s1 , s2 , . . . , sm (1 ≤ si ≤ 109 ). Третья строка содержит n целых чисел: r1 ,r2 ,...,rn (1 ≤ ri ≤ 109 ). Выходные данные Первая строка ответа должна содержать одно целое число — минимальный день, к которому можно полностью освоить все деньги грантов. Примечание Одна из возможных оптимальных схем освоения устроена следующим образом: грант 1 отдается первому проекту, который осваивает его в течение 11 дней. Остальные гранты отдаются второму проекту, грант 2 осваивается в течение дней 3–7, грант 3 в течение дней 8–12 и грант 4 в течение дней 13–17. Заметим, что грант 4 появляется в день 12, но назначается только в день 13. Примеры Входные данные 2 4 22 2 5 1 3 8 12 Выходные данные 17 решить на c#, применяя методы жадных алгоритмов
Решение:
Для решения данной задачи мы можем использовать жадный алгоритм. Давайте разберем шаги, которые нам нужно выполнить: 1. Ввод данных: Сначала мы считываем количество проектов m, количество грантов n и сумму гранта p. Затем считываем массив s с максимальными суммами, которые могут освоить проекты за день, и массив r с днями, когда гранты становятся доступны. 2. Сортировка: Мы отсортируем массивы r (дни, когда гранты доступны) и s (скорости освоения проектов) для более эффективного распределения грантов. 3. Инициализация: Создадим переменную для отслеживания текущего дня, когда мы можем начать...
- Мы считываем входные данные и сортируем массивы. - Затем мы проходим по каждому гранту и находим проект, который сможет освоить его быстрее всего. - Мы обновляем текущий день и запоминаем, когда каждый грант будет освоен. - В конце мы выводим максимальный день из массива освоения грантов, который и будет нашим ответом. Таким образом, мы получаем минимальный день, когда все гранты будут освоены.Похожие задачи
Не нашел нужную задачу?
Воспользуйся поиском
Выбери предмет
- Правоохранительные органы
- Пожарная безопасность
- Парикмахерское искусство
- Природообустройство и водопользование
- Почвоведение
- Приборостроение и оптотехника
- Промышленный маркетинг и менеджмент
- Производственный маркетинг и менеджмент
- Процессы и аппараты
- Программирование
- Право и юриспруденция
- Психология
- Политология
- Педагогика
- Трудовое право
- Теория государства и права (ТГП)
- Таможенное право
- Теория игр
- Текстильная промышленность
- Теория вероятностей
- Теоретическая механика
- Теория управления
- Технология продовольственных продуктов и товаров
- Технологические машины и оборудование
- Теплоэнергетика и теплотехника
- Туризм
- Товароведение
- Таможенное дело
- Торговое дело
- Теория машин и механизмов
- Транспортные средства