const fs = require('fs');
const input = fs.readFileSync('./input.txt').toString().trim().split('\n');
const N = +input.shift();
const queue = [];
const answer = [];
for (let i = 0; i < N; i++) {
if (input[i].includes('push')) {
const num = +input[i].split(' ')[1];
queue.push(num);
} else if (input[i] === 'pop') {
if (queue.length > 0) {
answer.push(queue.shift());
} else {
answer.push(-1);
}
} else if (input[i] === 'size') {
answer.push(queue.length);
} else if (input[i] === 'empty') {
if (queue.length > 0) {
answer.push(0);
} else {
answer.push(1);
}
} else if (input[i] === 'front') {
if (queue.length > 0) {
answer.push(queue[0]);
} else {
answer.push(-1);
}
} else if (input[i] === 'back') {
if (queue.length > 0) {
answer.push(queue[queue.length - 1]);
} else {
answer.push(-1);
}
}
}
console.log(answer.join('\n'));
const fs = require('fs');
const input = fs.readFileSync('./dev/stdin').toString().trim();
class Node {
constructor(value) {
this.value = value;
this.prev = null;
this.next = null;
}
}
class LinkedList {
constructor() {
this.size = 0;
this.head = null;
this.tail = null;
}
addNode(value) {
const newNode = new Node(value);
if (!this.head) {
this.head = newNode;
} else {
this.tail.next = newNode;
newNode.prev = this.tail;
}
this.tail = newNode;
this.size++;
}
getHead() {
return this.head.value;
}
removeHead() {
this.head = this.head.next;
this.head.prev = null;
this.size--;
}
getSize() {
return this.size;
}
}
const cards = new LinkedList();
for (let i = 1; i <= input; i++) {
cards.addNode(i);
}
while (cards.getSize() !== 1) {
cards.removeHead();
cards.addNode(cards.getHead());
cards.removeHead();
}
console.log(cards.getHead());
const fs = require('fs');
const input = fs.readFileSync('./dev/stdin').toString().trim().split(' ');
const [N, K] = input.map(Number);
const queue = [];
const answerArr = [];
let temp;
for (let i = 0; i < N; i++) {
queue.push(i + 1);
}
while (queue.length > 0) {
for (let i = 1; i < K; i++) {
temp = queue.shift();
queue.push(temp);
}
temp = queue.shift();
answerArr.push(temp);
}
console.log('<' + answerArr.join(', ') + '>');
const fs = require('fs');
const input = fs.readFileSync('./dev/stdin').toString().trim().split('\n');
const caseNum = +input.shift();
for (let i = 0; i < caseNum; i++) {
const [N, M] = input.shift().split(' ').map(Number);
const queue = input.shift().split(' ').map(Number);
const queueObjArr = [];
let maxNum;
let printedNum;
let count = 0;
for (let j = 0; j < N; j++) {
queueObjArr.push({ value: queue[j], index: j });
}
while (true) {
maxNum = Math.max(...queue);
if (queue[0] >= maxNum) {
queue.shift();
printedNum = queueObjArr[0].index;
queueObjArr.shift();
count++;
} else {
queue.push(queue.shift());
queueObjArr.push(queueObjArr.shift());
}
if (printedNum === M) {
console.log(count);
break;
}
}
}
const fs = require('fs');
const input = fs.readFileSync('./dev/stdin').toString().trim().split('\n');
const N = +input.shift();
const deque = [];
const answerArr = [];
for (let i = 0; i < N; i++) {
if (input[i].includes('push_back')) {
deque.push(+input[i].split(' ')[1]);
} else if (input[i].includes('push_front')) {
deque.unshift(+input[i].split(' ')[1]);
} else if (input[i] === 'pop_front') {
if (deque.length === 0) {
answerArr.push(-1);
} else {
answerArr.push(deque.shift());
}
} else if (input[i] === 'pop_back') {
if (deque.length === 0) {
answerArr.push(-1);
} else {
answerArr.push(deque.pop());
}
} else if (input[i] === 'size') {
answerArr.push(deque.length);
} else if (input[i] === 'empty') {
if (deque.length === 0) {
answerArr.push(1);
} else {
answerArr.push(0);
}
} else if (input[i] === 'front') {
if (deque.length === 0) {
answerArr.push(-1);
} else {
answerArr.push(deque[0]);
}
} else if (input[i] === 'back') {
if (deque.length === 0) {
answerArr.push(-1);
} else {
answerArr.push(deque[deque.length - 1]);
}
}
}
console.log(answerArr.join('\n'));
const fs = require('fs');
const input = fs.readFileSync('./dev/stdin').toString().trim().split('\n');
let N = input[0].split(' ').map(Number)[0];
const M = input[0].split(' ').map(Number)[1];
const idxArr = input[1].split(' ').map(Number);
const queue = [];
let answer = 0;
for (let i = 0; i < N; i++) {
queue.push(i + 1);
}
const leftOperator = (arr) => {
arr.push(arr.shift());
answer++;
};
const rightOperator = (arr) => {
arr.unshift(arr.pop());
answer++;
};
const getDirection = (curN, idx) => {
if (curN / 2 >= idx) return 'left';
return 'right';
};
for (let i = 0; i < M; i++) {
if (getDirection(N, queue.indexOf(idxArr[i])) === 'left') {
while (queue[0] !== idxArr[i]) leftOperator(queue);
queue.shift();
N--;
} else {
while (queue[0] !== idxArr[i]) rightOperator(queue);
queue.shift();
N--;
}
}
console.log(answer);
const fs = require('fs');
const input = fs.readFileSync('./dev/stdin').toString().trim().split('\n');
const T = +input.shift();
let answer = '';
for (let i = 0; i < input.length; i += 3) {
const func = input[i].split('');
let array = input[i + 2].replace('[', '').replace(']', '').split(',');
let isError = false;
let isReverse = false;
if (input[i + 1] === '0') {
array = [];
}
for (let j = 0; j < func.length; j++) {
if (func[j] === 'R') {
isReverse = !isReverse;
} else {
if (array.length > 0) {
if (isReverse) {
array.pop();
} else {
array.shift();
}
} else {
isError = true;
}
}
}
answer += isError ? 'error\n' : isReverse ? `[${array.reverse()}]\n` : `[${array}]\n`;
}
console.log(answer.trim());