Решение
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
import java.util.ArrayDeque
fun main() {
val reader = BufferedReader(InputStreamReader(System.`in`))
val writer = BufferedWriter(OutputStreamWriter(System.out))
val deque = ArrayDeque<Int>() // Дек для хранения элементов
while (true) {
val command = reader.readLine().split(" ") // Считываем команду
when (command[0]) {
"push_front" -> {
// Добавляем элемент в начало дека
deque.addFirst(command[1].toInt())
writer.write("ok\\n")
}
"push_back" -> {
// Добавляем элемент в конец дека
deque.addLast(command[1].toInt())
writer.write("ok\\n")
}
"pop_front" -> {
// Извлекаем первый элемент или выводим ошибку, если дек пуст
writer.write(if (deque.isEmpty()) "error\\n" else "${deque.removeFirst()}\\n")
}
"pop_back" -> {
// Извлекаем последний элемент или выводим ошибку, если дек пуст
writer.write(if (deque.isEmpty()) "error\\n" else "${deque.removeLast()}\\n")
}
"front" -> {
// Выводим первый элемент без удаления или ошибку, если дек пуст
writer.write(if (deque.isEmpty()) "error\\n" else "${deque.first()}\\n")
}
"back" -> {
// Выводим последний элемент без удаления или ошибку, если дек пуст
writer.write(if (deque.isEmpty()) "error\\n" else "${deque.last()}\\n")
}
"size" -> {
// Выводим количество элементов в деке
writer.write("${deque.size}\\n")
}
"clear" -> {
// Очищаем дек
deque.clear()
writer.write("ok\\n")
}
"exit" -> {
// Завершаем выполнение программы
writer.write("bye\\n")
break
}
}
}
reader.close()
writer.close()
}