Форум программистов, компьютерный форум CyberForum.ru

Предприниматели - C++

Войти
Регистрация
Восстановить пароль
 
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
07.12.2010, 17:54     Предприниматели #1
Есть N (1<=N<=100) граждан – субъектов предпринимательской деятельности. Каждый из них имеет на счету сумму денег, возможно и отрицательную (долги!). Каждый из них имеет возможность провести одну сделку, в результате которой сумму на счету можно изменить не более чем на целую величину L (1<=L<=3200) как в сторону увеличения, так и в сторону уменьшения или оставить без изменения. Если после такой операции некоторые из сумм на счету оказываются равными, то их владельцы объединяются в одно предприятие. Им удалось провести эту операцию таким образом, что осталось минимально возможное количество субъектов предпринимательской деятельности. Требуется написать программу для определения этого количества.

Технические условия: Программа читает с клавиатуры значения L и N, а далее N целых чисел (в диапазоне от -32000 до 32000), записанных через пробел. Программа выводит на экран одно число – искомую величину

Пример
Ввод
10 3 11 21 27
Вывод:
1
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4661 / 2487 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
07.12.2010, 18:44     Предприниматели #2
Вроде решается просто:
N целых чисел сортируем, затем формируем их в субъекты:
1. Минимальное число - min и все числа попадающие в диапазон от min до min+L*2 попадут в один субъект.
2. Берем следующее минимальное число, не попавшее в предыдущий субъект и повторяем п.1 - это будет субъект 2.
и т.д.
Yandex
Объявления
07.12.2010, 18:44     Предприниматели
Ответ Создать тему
Опции темы

Текущее время: 09:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru