Advertisement
Okorosso

Максимум в скользящем окне

Jul 1st, 2021
718
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.89 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4. #include <stack>
  5.  
  6. using namespace std;
  7.  
  8. void add(deque<int> &q, int x) {
  9.     while (!q.empty() && q.back() < x)
  10.         q.pop_back();
  11.     q.push_back(x);
  12. }
  13.  
  14. void extract(deque<int> &q, int x) {
  15.     if (!q.empty() && q.front() == x)
  16.         q.pop_front();
  17. }
  18.  
  19. int main() {
  20.     ifstream fin("input.txt");
  21.     ofstream fout("output.txt");
  22.  
  23.     int n, m;
  24.     fin >> n;
  25.     vector<int> array;
  26.     deque<int> q;
  27.    
  28.     for (int i = 0; i < n; i++) {
  29.         int tmp;
  30.         fin >> tmp;
  31.         array.push_back(tmp);
  32.     }
  33.    
  34.     fin >> m;
  35.     add(q, array[0]);
  36.     int l = 0, r = 0;
  37.    
  38.     for (int i = 0; i < m; i++) {
  39.         char tmp;
  40.         fin >> tmp;
  41.         if (tmp == 'R')
  42.             add(q, array[++r]);
  43.         else
  44.             extract(q, array[l++]);
  45.         fout << q.front() << " ";
  46.     }
  47. }
  48.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement