(паскаль) 3. пакуем чемоданы! алёна собирает вещи в отпуск. с собой в самолёт она может взять ручную кладь и багаж. для ручной клади у алёны есть рюкзак, а для багажа – огромный чемодан. по правилам перевозки масса ручной клади не должна превосходить s кг, а багаж может быть любой массы (за сверхнормативный багаж алёна готова доплатить). разумеется, наиболее ценные вещи – ноутбук, фотоаппарат, документы и т. д. – алёна хочет положить в ручную кладь. алёна разложила все свои вещи в порядке уменьшения их ценности и начинает складывать наиболее ценные вещи в рюкзак. она действует следующим образом – берёт самый ценный предмет, и если его масса не превосходит s, то кладёт его в рюкзак, иначе кладёт его в чемодан. затем она берёт следующий по ценности предмет, если его можно положить в рюкзак, то есть если его масса вместе с массой уже положенных в рюкзак вещей не превосходит s, то кладёт его в рюкзак, иначе в чемодан, и таким же образом процесс продолжается для всех предметов в порядке убывания их ценности. определите вес рюкзака и чемодана после того, как алёна сложит все вещи. первая строка входных данных содержит число s – максимально разрешённый вес рюкзака. во второй строке входных данных записано число n – количество предметов. в следующих n строках даны массы предметов, сами предметы перечислены в порядке убывания ценности (сначала указана масса самого ценного предмета, затем масса второго по ценности предмета и т. все числа натуральные, число s не превосходит 2×109 , сумма весов всех предметов также не превосходит 2×109 . значение n не превосходит 105 . программа должна вывести два числа – вес рюкзака и вес чемодана (вес пустого рюкзака и чемодана не учитывается). пример входных и выходных данных ввод: 20 5 6 10 5 2 3 вывод: 18 8
begin
readln(s);
readln(n);
s1:=0; s2:=0;
for i:=1 to n do
begin
readln(m);
if s1+m<=s then s1:=s1+m else s2:=s2+m;
end;
writeln(s1);
writeln(s2);
end.
Пример:
20
5
6
10
5
2
3
18
8