The new "Avengers" movie has just been released! There are a lot of people at the cinema box office standing in a huge line. Each of them has a single 100
, 50
or 25
dollar bill. An "Avengers" ticket costs 25 dollars
.
Vasya is currently working as a clerk. He wants to sell a ticket to every single person in this line.
Can Vasya sell a ticket to every person and give change if he initially has no money and sells the tickets strictly in the order people queue?
Return YES
, if Vasya can sell a ticket to every person and give change with the bills he has at hand at that moment. Otherwise return NO
.
Examples:
tickets([25, 25, 50])
tickets([25, 100])
tickets([25, 25, 50, 50, 100])
function tickets(peopleInLine) {
let change = { 25: 0, 50:0, 100:0 }
for (const m of peopleInLine) {
change[m]++;
let count = m;
while (count > 50 && change[50]) {
count -= 50;
change[50]--;
}
while (count > 25 && change[25]) {
count -= 25;
change[25]--;
}
if (count !== 25) return "NO";
}
return "YES";
}