Задачі
Дек необмеженого розміру
Дек необмеженого розміру
Реалізуйте структуру даних "\textit{дек}". Напишіть програму, яка містить опис дека і моделює роботу дека, реалізувавши усі вказані тут методи. Програма зчитує послідовність команд і у залежності від команди виконує ту чи іншу операцію. Після виконання кожної команди програма повинна вивести один рядок. Можливі команди для програми:
\textbf{push_front}
Додати (покласти) у початок дека новий елемент. Програмиа повинна вивести \textbf{ok}.
\textbf{push_back}
Додати (покласти) у кінець дека новий елемент. Програма повинна вивести \textbf{ok}.
\textbf{pop_front}
Дістати з дека перший елемент. Програма повинна вивести його значення.
\textbf{pop_back}
Дістати з дека останній елемент. Програма повинна вивести його значення.
\textbf{front}
Взнати значення першого элементу (не видаляючи його). Програма повинна вивести його значення.
\textbf{back}
Взнати значення останнього элементу (не видаляючи його). Програма повинна вивести його значення.
\textbf{size}
Вивести кількість елементів у декі.
\textbf{clear}
Очистити дек (видалити з нього усі елементи) і вивести \textbf{ok}.
\textbf{exit}
Програма повинна вивести \textbf{bye} і завершити роботу.
Розмір дека повинен бути обмежений лише розміром доступної оперативної пам'яті. Перед виконанням операцій \textbf{pop_front}, \textbf{pop_back}, \textbf{front}, \textbf{back} програма повинна перевіряти, чи міститься у декі хоча б один елемент. Якщо у вхідних даних зустрічається операція \textbf{pop_front}, \textbf{pop_back}, \textbf{front}, \textbf{back}, і при цьому дек порожній, то програма повинна замість числового значення вивести рядок \textbf{error}.
\InputFile
Описані в умові. Див. також приклад вхідних даних.
\OutputFile
Описані в умові. Див. також приклад вихідних даних.
Вхідні дані #1
push_back 1 back exit
Вихідні дані #1
ok 1 bye