Mikki0

Untitled

Sep 20th, 2021
678
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <memory>
  3. #include <vector>
  4.  
  5. struct PersistentStack {
  6.     size_t size = 0;
  7.     int value = 0;
  8.     std::shared_ptr<PersistentStack> prev = nullptr;
  9.  
  10.     PersistentStack(int v, std::shared_ptr<PersistentStack>& p): size(1), value(v), prev(p) {}
  11. };
  12.  
  13. struct PersistentQueue {
  14.     std::shared_ptr<PersistentStack> L = nullptr, L_ = nullptr, R = nullptr, Rc = nullptr, Rc_ = nullptr, S = nullptr;
  15.     bool panic = false, reversed = false;
  16.  
  17.     bool check_panic() {
  18.         if (!reversed) {
  19.             return
  20.         } else {
  21.  
  22.         }
  23.     }
  24.  
  25.     void pop() {
  26.         if (!panic) {
  27.             R = R->prev;
  28.         } else if (!reversed) {
  29.             Rc = Rc->prev;
  30.         } else {
  31.             Rc_ = Rc_->prev;
  32.         }
  33.         panic = check_panic();
  34.     }
  35.  
  36.     int top() const {
  37.         if (!panic) {
  38.             return R->value;
  39.         } else if (!reversed) {
  40.             return Rc->value;
  41.         } else {
  42.             return Rc_->value;
  43.         }
  44.     }
  45.  
  46. };
  47.  
  48. int main() {
  49.     freopen("input.txt", "r", stdin);
  50.     freopen("output.txt", "w", stdout);
  51.     size_t n, m;
  52.     std::cin >> n >> m;
  53.     std::vector<size_t> reloads(n);
  54.     for (size_t i = 0; i < n; ++i) {
  55.         std::cin >> reloads[i];
  56.     }
  57. }
RAW Paste Data