Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template < typename T > class MinMaxQueue {
- public:
- queue < T > Q;
- deque < T > D;
- void PushCos(T cosiek) {
- if (Q.size() == 0) {
- Q.push(cosiek);
- D.push_back(cosiek);
- }
- else {
- Q.push(cosiek);
- while (!D.empty() && D.back() < cosiek) {
- D.pop_back();
- }
- D.push_back(cosiek);
- }
- }
- void RemoveCos() {
- if (Q.front() == D.front()) {
- Q.pop();
- D.pop_front();
- }
- else {
- Q.pop();
- }
- }
- T GimmeMax() {
- return D.front();
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement