РСОП 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