-
Notifications
You must be signed in to change notification settings - Fork 0
/
buyTicket.js
55 lines (47 loc) · 908 Bytes
/
buyTicket.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// Q https://pdfhost.io/v/h9erXO7i0_Buy_ticket.pdf
let queue = [];
let front = -1;
let end = -1;
function insertEl(x) {
end++;
queue[end] = x;
console.log(end - front);
}
function deleteEl() {
if (front >= end) {
let length = end - front;
console.log(-1, length);
} else {
front++;
let leftEl = queue[front];
let length = end - front;
console.log(leftEl, length);
}
}
function main(array) {
if (array[0] === "E") {
insertEl(array[1]);
} else if (array[0] === "D") {
deleteEl(array[1]);
}
}
function runProgram(input) {
let newInput = input.trim().split("\n");
for (let i = 1; i < newInput.length; i++) {
let querryArray = newInput[i].trim().split(" ");
main(querryArray);
}
}
let input = `5
E 2
D
D
E 3
D`;
runProgram(input);
// sample O/p
// 1
// 2 0
// -1 0
// 1
// 3 0