function cinemaVoucher(inputArray){
/*
Любо е голям почитател на киното и редовно ходи на прожекции и участва в томболи,
от които често печели ваучери за кино.
Вашата задача е да напишете програма, която да изчислява колко покупки от киното може да си купи Любо със спечеленият ваучер.
Ако името на покупката съдържа повече от 8 символа, то тя е билет за филм, а нейната цена представлява
сумата на ASCII символите от първите ѝ два символа.
Ако името на покупката съдържа 8 или по-малко символа, нейната цена е равна на стойността на първия ASCII символ в името.
Любо въвежда името на покупките, които желае, докато не въведе "End" или не въведе покупка,
чиято стойност е по-голяма от останалата сума на ваучера.
Вход
Първоначално се чете един ред:
• Стойността на ваучера – цяло число в интервала [1…100000]
След това до получаване на команда "End" или до изчерпването на ваучера, се чете по един ред:
o Покупката, която Любо е избрал – текст
Изход
Програмата приключва при въвеждане на команда "End" или при покупка чиято стойност е по-голяма от останалите пари от ваучера. На конзолата трябва да се напечатат три реда:
• "{брои закупени билети}"
• "{брой закупени други покупки}"
*/
// To convert an entire string into an array of ASCII codes, you can use:
// Array.from() combined with map() and charCodeAt(0).
// For instance, Array.from('Hello').map(char => char.charCodeAt(0)) produces [72, 101, 108, 108, 111].
let index = 1;
let voucherValue = Number(inputArray[0]);
let input = inputArray[index];
let totalTickets = 0;
let totalGoods = 0;
let ticketsPrice = 0
let newTicketPrice = 0;
let productPrice = 0;
while (input != "End"){
let wordLength = input.length; //определям дължината на масива
let article = Array.from(input).map(char=>char.charCodeAt(0));// преобразувам го в масив от ASCII символи
if(wordLength > 8){ // проверявам дали дължината е по-голяма от 8 -> това е билет за кино
//let article = Array.from(input).map(char => char.charCodeAt(0));
for(let i = 0; i < 2; i++){ // с този цикъл вземам първите два ASCII символа за да намеря цената на билета. Идва от условието на задачата
let currentPrice = article[i];
newTicketPrice = newTicketPrice + currentPrice;
currentPrice = 0;
}
if(ticketsPrice <= voucherValue){ //проверявам дали ваучера покрива цената на билета
voucherValue = voucherValue - newTicketPrice;
totalTickets++;
newTicketPrice= 0;
}else {
break;
}
}else if(wordLength <= 8){ // проверявам за артикул който има дълина по-малка или рвна на 8
let currentArticle = article[0]// вземам само първия ASCII символ на артикула.
productPrice = currentArticle;
if(productPrice <= voucherValue){ //проверявам дали ваучера покрива цената на артикула
voucherValue = voucherValue - productPrice;
productPrice = 0;
totalGoods++;
}else{
break; // ако нямам достатъчно пари излизам
}
}
index++;
if(index > inputArray.length-1){ //проверявам за карай на масива
break;
}
input = inputArray[index]; // вземам следващ елемент от масива
}
console.log(totalTickets);
console.log(totalGoods);
}
//cinemaVoucher([300, "Captain Marvel", "popcorn", "Pepsi"])
//cinemaVoucher(["1500","Avengers: Endgame","Bohemian Rhapsody","Deadpool 2","End"])
//cinemaVoucher([200, "popcorn", "Pepsi", "End"]) // 192 е сумата на двата артикула с 200 би трябввало да излезем заради End!
cinemaVoucher([200, "popcorn", "Pepsi", "Orange", "End"]) // 271 е сумата на трите артикула, 200лв. би трябввало да не ни стигнат поради което да изляза за заради недостатъчно пари във ваучера.