Ограничения: время – 250ms/500ms, память – 128MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Написать класс для односвязного списка
```c++
template <typename T>
class SList {
struct node { T value; node *next; } *first=nullptr, *last=nullptr;
int len=0;
public:
class iterator {
const SList *list; node *prev; // для вставки
public: // ++, *, ==, !=
...};
...
};
```
---
АТД Список
конструктор (пустой список) // std::list<int> s;
длина списка // int len=s.size();
получение итератора на первый элемент (конец списка) // auto it=s.begin(), e=s.end();
вставить перед итератором // auto ne=s.insert(it,3); возвращается итератор на доб. элемент
удалить элемент по итератору // s.erase(ne); возвращается итератор на след. элемент
---
АТД Итератор списка
Следующий // ++it;
Конец списка // it==s.end();
Значение элемента // *it