Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- class Queque
- {
- public:
- void pushBack( int b ) {
- if (size == 0) {
- initArray(256);
- }
- if (count == size) {
- extendMem();
- head = 0;
- tail = size / 2;
- }
- array[ tail % size ] = b;
- tail++;
- count++;
- }
- int popFront() {
- if (count == 0) {
- return -1;
- }
- head++;
- count--;
- return array[head - 1];
- }
- void clear() {
- delete[] array;
- }
- private :
- int count = 0;
- int size = 0;
- int head = 0;
- int tail = 0;
- int *array;
- void extendMem()
- {
- int i = 0;
- size = size * 2;
- int *array1 = new int[size];
- for (int j = head; j < tail; j++) {
- array1[i] = array[ j % (size / 2) ];
- i++;
- }
- delete[] array;
- array = array1;
- }
- void initArray(int size) {
- array = new int[size];
- this->size = size;
- }
- };
- int main() {
- int a = 0;
- int b = 0;
- int n = 0;
- bool flag = true;
- Queque Myclass;
- std::cin >> n;
- for (int i = 1; i <= n; i++) {
- std::cin >> a >> b;
- if (a == 2) {
- if (b == Myclass.popFront() && (flag)) {
- flag = true;
- }
- else {
- flag = false;
- }
- }
- if (a == 3) {
- Myclass.pushBack(b);
- }
- }
- if (flag) {
- std::cout << "YES";
- }
- else {
- std::cout << "NO";
- }
- Myclass.clear();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement