Advertisement
bogolyubskiyalexey

Untitled

Feb 12th, 2021
648
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.45 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <set>
  4. #include <list>
  5. #include <map>
  6. void task1() {
  7.     size_t n, k;
  8.     std::cin >> n >> k;
  9.     std::vector<int> values;
  10.     for (auto& value : values) {
  11.         std::cin >> value;
  12.     }
  13.     std::multiset<int> window;
  14.     for (size_t i = 0; i < n; ++i) {
  15.         window.insert(values[i]);
  16.         if (window.size() > k) {
  17.             window.erase(window.find(values[i - k]));
  18.         }
  19.         if (window.size() == k) {
  20.             std::cout << *window.begin() << std::endl;
  21.         }
  22.     }
  23. }
  24.  
  25. void task2() {
  26.     size_t n;
  27.     std::list<int> order;
  28.     std::map<int, std::list<int>::iterator> mapping;
  29.  
  30.     for (size_t i = 0; i < n; ++i) {
  31.         int value, afterValue;
  32.         std::cin >> value >> afterValue;
  33.         std::map<int, std::list<int>::iterator>::iterator it = mapping.find(afterValue);
  34.         if (it != mapping.end()) {
  35.             auto position = it->second;
  36.             ++position;
  37.             mapping[value] = order.insert(position, value);
  38.         } else {
  39.             mapping[value] = order.insert(order.begin(), value);
  40.         }
  41.     }
  42.     for (auto value : order) {
  43.         std::cout << value << " ";
  44.     }
  45. }
  46.  
  47.  
  48.  
  49.  
  50. int main() {
  51.     std::vector<int> a = {1,2,45,6};
  52.     std::list<int> b = {100, 200, 300, 400};
  53.  
  54.     std::copy(a.begin(), a.end(), std::inserter(b, ++b.begin()));
  55.  
  56.     for (auto value : b) {
  57.         std::cout << value << std::endl;
  58.     }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement