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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
#1

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

07.12.2010, 17:54. Просмотров 253. Ответов 1
Метки нет (Все метки)

Есть N (1<=N<=100) граждан – субъектов предпринимательской деятельности. Каждый из них имеет на счету сумму денег, возможно и отрицательную (долги!). Каждый из них имеет возможность провести одну сделку, в результате которой сумму на счету можно изменить не более чем на целую величину L (1<=L<=3200) как в сторону увеличения, так и в сторону уменьшения или оставить без изменения. Если после такой операции некоторые из сумм на счету оказываются равными, то их владельцы объединяются в одно предприятие. Им удалось провести эту операцию таким образом, что осталось минимально возможное количество субъектов предпринимательской деятельности. Требуется написать программу для определения этого количества.

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

Пример
Ввод
10 3 11 21 27
Вывод:
1
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4669 / 2495 / 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     Предприниматели
Ответ Создать тему
Опции темы

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