export default class FrontMiddleBackQueue { #queue: Array<number> = [];
pushFront(val: number): void { this.#queue.unshift(val); }
pushMiddle(val: number): void { this.#queue.splice(Math.floor(this.#queue.length / 2), 0, val); }
pushBack(val: number): void { this.#queue.push(val); }
popFront(): number { return this.#queue.shift() ?? -1; }
popMiddle(): number { if (this.#queue.length === 0) return -1; const mid = Math.floor(this.#queue.length / 2) - Number(!(this.#queue.length % 2)); const result = this.#queue[mid]; this.#queue.splice(mid, 1); return result; }
popBack(): number { return this.#queue.pop() ?? -1; }}