e-olymp
favorite Нам необхідно трохи Вашої допомоги щоб сайт продовжував працювати, натисніть на банер щоб дізнатись більше.
Задачі

Дек з захистом від помилок

Дек з захистом від помилок

Реалізуйте структуру даних "дек". Напишіть програму, яка містить опис дека і моделює роботу дека, реалізувавши усі вказані тут методи. Програма зчитує послідовність команд і у залежності від команди виконує ту чи іншу операцію. Після виконання кожної команди програма повинна вивести один рдок. Можливі команди для програми:

push_front

Додати (покласти) у початок дека новий елемент. Програма повинна вивести ok.

push_back

Додати (покласти) у кінець дека новий елемент. Програма повинна вивести ok.

pop_front

Дістати з дека перший елемент. Програма повинна вивести його значення.

pop_back

Дістати з дека останній елемент. Програма повинна вивести його значення.

front

Взнати значення першого елемента (не видаляючи його). Програма повинна вивести його значення.

back

Взнати значення останнього елемента (не видаляючи йоего). Програма повинна вивести його значення.

size

Вивести кількість елементів у декі.

clear

Очистити дек (видалити з нього усі елементи) і вивести ok.

exit

Програма повинна вивести bye і завершити роботу.

Гарантується, що кількість елементів у декі у довільний момент не перевищує 100. Перед виконанням операцій pop_front, pop_back, front, back програма повинна перевіряти, чи міститься у декі хоча б один елемент. Якщо у вхідних даних зустрічається операція pop_front, pop_back, front, back, і при цьому дек порожній, то програма повинна замість числового значення вивести рядок error.

Вхідні дані

Описані в умові. Див. також приклад вхідних даних.

Вихідні дані

Описані в умові. Див. також приклад вихідних даних.

Ліміт часу 2 секунди
Ліміт використання пам'яті 128 MiB
Вхідні дані #1
front
back
pop_back
pop_front
exit

Вихідні дані #1
error
error
error
error
bye
Вхідні дані #2
push_back 1
back
exit
Вихідні дані #2
ok
1
bye

Пояснення: Кількість елементів у всіх структурах даних не перевищує 10000, якщо це не вказано окремо.