Решение
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
fun main() {
val reader = BufferedReader(InputStreamReader(System.`in`))
val writer = BufferedWriter(OutputStreamWriter(System.out))
val stack = ArrayDeque<Int>() // Используем ArrayDeque как стек
while (true) {
val command = reader.readLine().split(" ") // Читаем команду
when (command[0]) {
"push" -> {
stack.addLast(command[1].toInt()) // Добавляем число в стек
writer.write("ok")
}
"pop" -> {
if (stack.isEmpty()) writer.write("error") // Проверяем, пуст ли стек
else writer.write(stack.removeLast().toString()) // Удаляем и выводим последний элемент
}
"back" -> {
if (stack.isEmpty()) writer.write("error") // Проверяем, пуст ли стек
else writer.write(stack.last().toString()) // Выводим последний элемент без удаления
}
"size" -> writer.write(stack.size.toString()) // Выводим размер стека
"clear" -> {
stack.clear() // Очищаем стек
writer.write("ok")
}
"exit" -> {
writer.write("bye") // Завершаем программу
break
}
}
writer.newLine() // Переход на новую строку
}
reader.close()
writer.close()
}