Advertisement
Guest User

Untitled

a guest
Dec 20th, 2014
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.26 KB | None | 0 0
  1. class Stack{
  2.     long long S = [1000001];
  3.     int ptr;
  4. public:
  5.     Stack(){
  6.         ptr = 0;
  7.     }
  8.     void push(long long value){
  9.         if (!ptr)
  10.         S[++ptr] = value;
  11.         else S[++ptr] = min(S[ptr], value);
  12.         ptr++;
  13.         }
  14.     void pop(){
  15.         if (ptr) ptr--;
  16.         }
  17.     int size(){
  18.         return ptr;
  19.         }
  20.     long long min_Element(){
  21.         return S[ptr];
  22.         }
  23.     bool empty(){
  24.         if(!ptr) return 1;
  25.         return 0;
  26.         }
  27.     };
  28. class Queue{
  29.     Stack S1, S2;
  30.     int ptr1, ptr2;
  31. public:
  32.     Queue(){
  33.         ptr1 = 0;
  34.         ptr2 = 0;
  35.         }
  36.     void push(long long value){
  37.         S1.push(value);
  38.     }
  39.     void pop(){
  40.         if (ptr1){
  41.             while (!S1.empty()){
  42.                 S2.push(S1.min_Element());
  43.             }
  44.         S2.pop();
  45.         }
  46.     int size(){
  47.         return ptr1;
  48.         }
  49.     bool empty(){
  50.         if (!ptr1 && !ptr2) return 1;
  51.         return 0;
  52.         }
  53.     long long min_Element(){
  54.         if(!S1.empty() || !S2.empty()){
  55.             if(S1.empty() || S2.empty()){
  56.                 return (S1.empty()? S2.min_Element():S1.min_Element());
  57.             }
  58.             else return min(S1.min_Element(), S2.min_Element());
  59.         }
  60.     }
  61.     };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement