Vending Machine Simulator
JavaScript
Hard
4 views
Problem Description
You start with balance 0. Commands: COIN x (add to balance) and BUY p (try to buy item price p). If balance>=p print OK and reduce balance, else print NEED. At end print final balance.
Input Format
First line q. Next q lines: COIN x or BUY p.
Output Format
Outputs for BUY lines, then last line BAL balance.
Sample Test Case
Input:
6
COIN 10
BUY 7
BUY 7
COIN 5
BUY 7
BUY 1
Output:
OK
NEED
OK
OK
BAL 0
Official Solution
const fs=require('fs');const lines=fs.readFileSync(0,'utf8').trim().split(/\
?\
/);if(!lines[0])process.exit(0);const q=Number(lines[0].trim());let bal=0n;let out=[];for(let i=1;i<=q;i++){const p=lines[i].trim().split(/\\s+/);if(p[0]==='COIN'){bal+=BigInt(p[1]);}else if(p[0]==='BUY'){const price=BigInt(p[1]);if(bal>=price){bal-=price;out.push('OK');}else out.push('NEED');}}out.push('BAL '+bal.toString());process.stdout.write(out.join('\
'));
Solutions (0)
No solutions submitted yet. Be the first!
No comments yet. Start the discussion!