(ПАСКАЛЬ) Задачка 3. Пакуем чемоданы!Алёна собирает вещи в отпуск. С собой

(ПАСКАЛЬ) Задача 3. Пакуем чемоданы!
Алёна собирает вещи в отпуск. С собой в самолёт она может брать ручную кладь и
багаж. Для ручной поклажи у Алёны есть ранец, а для груза громадный чемодан.
По правилам перевозки масса ручной поклажи не должна превосходить S кг, а багаж
может быть любой массы (за сверхнормативный багаж Алёна готова доплатить). Разумеется,
наиболее ценные вещи ноутбук, фотоаппарат, документы и т. д. Алёна желает положить
в ручную кладь.
Алёна разложила все свои вещи в порядке убавления их ценности и начинает
складывать более ценные вещи в ранец. Она действует следующим образом берёт
самый ценный предмет, и если его масса не превосходит S, то кладёт его в рюкзак, по другому
кладёт его в чемодан. Потом она берёт последующий по ценности предмет, если его можно
положить в ранец, то есть если его масса совместно с массой теснее положенных в ранец вещей
не превосходит S, то кладёт его в ранец, иначе в чемодан, и таким же образом процесс
длится для всех предметов в порядке убывания их ценности.
Обусловьте вес ранца и чемодана после того, как Алёна сложит все вещи.
1-ая строка входных данных содержит число S максимально разрешённый вес
рюкзака. Во 2-ой строке входных данных записано число N количество предметов.
В последующих N строчках даны массы предметов, сами предметы перечислены в порядке
убывания ценности (сначала указана масса самого ценного предмета, затем масса второго по
ценности предмета и т. д.). Все числа естественные, число S не превосходит 2109
, сумма
весов всех предметов также не превосходит 2109
. Значение N не превосходит 105
.
Программка обязана вывести два числа вес рюкзака и вес чемодана (вес пустопорожнего
ранца и чемодана не учитывается).
Пример входных и выходных данных
Ввод:
20
5
6
10
5
2
3
Вывод:
18
8

Задать свой вопрос
Алина Ходунова
Вах-вах задача)))
Милена Западинчук
)))
1 ответ
Var s,n,m,i,s1,s2:integer;
begin
readln(s);
readln(n);
s1:=0; s2:=0;
for i:=1 to n do
 begin
 readln(m);
 if s1+mlt;=s then s1:=s1+m else s2:=s2+m;
 end;
writeln(s1);
writeln(s2);
end.

Пример:
20
5
6
10
5
2
3
18
8
, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт