Problem: дни за страстно пазаруване

Лина има истинска страст за пазаруване. Когато тя има малко пари, веднага отива в първия голям търговски център (мол) и се опитва да изхарчи възможно най-много за дрехи, чанти и обувки. Но любимото ѝ нещо са зимните намаления. Нашата задача е да анализираме странното ѝ поведение и да изчислим покупките, които Лина прави, когато влезе в мола, както и парите, които ѝ остават, когато приключи с пазаруването си.

На първия ред от входа ще бъде подадена сумата, която Лина има преди да започне да пазарува. След това при получаване командата "mall.Enter", Лина влиза в мола и започва да пазарува, докато не получи командата "mall.Exit". Когато Лина започне да пазарува, на всяка линия от входа ще получите стрингове, които представляват действия, които Лина изпълнява. Всеки символ в стринга представлява покупка или друго действие. Стринговите команди могат да съдържат само символи от ASCII таблицата. ASCII кода на всеки знак има връзка с това колко Лина трябва да плати за всяка стока. Интерпретирайте символите по следния начин:

  • Ако символът е главна буква, Лина получава 50% намаление, което означава, че трябва да намалите парите, които тя има, с 50% от цифровата репрезентация на символа от ASCII таблицата.
  • Ако символът е малка буква, Лина получава 70% намаление, което означава, че трябва да намалите парите, които тя има, с 30% от цифровата репрезентация на символа от ASCII таблицата.
  • Ако символът е "%", Лина прави покупка, която намалява парите ѝ на половина.
  • Ако символът е "*", Лина изтегля пари от дебитната си карта и добавя към наличните си средства 10 лева.
  • Ако символът е различен от упоменатите горе, Лина просто прави покупка без намаления и в такъв случай просто извадете стойността на символа от ASCII таблицата от наличните ѝ средства.

Ако някоя от стойностите на покупките е по-голяма от текущите налични средства, Лина НЕ прави покупката. Парите на Лина не могат да бъдат по-малко от 0.

Пазаруването завършва, когато се получи командата "mall.Exit". Когато това стане, трябва да принтирате броя на извършени покупки и парите, които са останали на Лина.

Input Data

Входните данни трябва да се четат от конзолата. На първия ред от входа ще бъде подадена сумата, която Лина има преди да започне да пазарува. На всеки следващ ред ще има определена команда. Когато получите командата "mall.Enter", на всеки следващ ред ще получавате стрингове, съдържащи информация относно покупките / действията, които Лина иска да направи. Тези стрингове ще продължат да бъдат подавани, докато не се получи командата "mall.Exit".

Винаги ще се подава само една команда "mall.Enter" и само една команда "mall.Exit".

Output Data

Изходните данни трябва да се принтират на конзолата. Когато пазаруването приключи, на конзолата трябва да се принтира определен изход в зависимост от това какви покупки са били направени.

  • Ако не са били направени някакви покупки – "No purchases. Money left: {останали пари} lv."
  • Ако е направена поне една покупка - "{брой покупки} purchases. Money left: {останали пари} lv."

Парите трябва да се принтират с точност от 2 символа след десетичния знак.

Constraints

  • Парите са число с плаваща запетая в интервала: [0 - 7.9 x 1028].
  • Броят стрингове между "mall.Enter" и "mall.Exit" ще в интервала: [1-20].
  • Броят символи във всеки стринг, който представлява команда, ще е в интервала: [1-20].
  • Позволено време за изпълнение: 0.1 секунди.
  • Позволена памет: 16 MB.

Sample Input and Output

Input Output Comments
110
mall.Enter
d
mall.Exit
1 purchases. Money left: 80.00 lv. ‘d’ има ASCII код 100. ‘d’ e малка буква и за това Лина получава 70% отстъпка. 100% – 70% = 30.110 – 30 = 80 лв.
Input Output Input Output
110
mall.Enter
%
mall.Exit
1 purchases. Money left: 55.00 lv. 100
mall.Enter
Ab
**
mall.Exit
2 purchases. Money left: 58.10 lv.

results matching ""

    No results matching ""