РСОП XXXV 2023
34
I.
ТЪРГОВЕЦ
209
Условие
I. Търговец
---
Имало едно време един търговец, който решил да тръгне на пътешествие из различни градове и да продава стоки с цел печалба. За превозване на стоките търговецът използва малко ремарке с определена товароносимост. За всяка от стоките се знае наличното количество в килограми в склада на търговеца и цената за един килограм.
Напишете програма, която определя от коя стока какво количество да се вземе, така че общата стойност да е възможно най-голяма, като общото тегло не трябва да надхвърля товароносимостта на ремаркето.
Вход: Програмата трябва при едно изпълнение да въведе от стандартния вход и да обработи няколко теста. Първият ред за всеки тест съдържа цяло число m – максималното тегло, което може да вози ремаркето. От втория ред се въвежда броят n на различните стоки в склада на търговеца. Всеки от следващите n реда съдържа по две числа с дробна част ai и bi, където ai е наличното количество в кг от i-тата стока, а bi е цената в лева на 1 кг от i-тата стока. Числата ai имат три цифри, а числата bi – две цифри след десетичната запетая. Между данните за отделните тестове има по един празен ред.
Изход: За всеки тестов пример, в реда по който са зададени на входа, програмата трябва да изведе на стандартния изход ред с число s – максималната възможна стойност в лева на натоварените в ремаркето стоки. На следващите n реда за всяка стока трябва да се изведе количеството ci в кг, което трябва да се вземе от нея. След извеждането на данните за всеки тест да се извежда по един празен ред.
Числото s трябва да се изведе с две цифри след десетичната точка, а числата ci, i = 1, 2, …, n с три цифри след десетичната точка.
Упътване: В C++ за извеждане на стойност x от тип double с двe цифри след десетичната точка използвайте cout << fixed << setprecision(2) << x << endl; и съответно cout << fixed << setprecision(3) << x << endl; за извеждане с три цифри след десетичната точка.
Ограничения: 1 ≤ m ≤ 1000, 1 ≤ n ≤ 100, 1 ≤ ai ≤ 100, 1 ≤ bi ≤ 100
Примерен вход:
50
3
10.000 6.00
30.000 4.00
20.000 5.00
100
1
10.250 6.58
Примерен изход:
240.00
10.000
20.000
20.000
67.45
10.250