Advertisement
Pearlfromsu

69E codeforces

Sep 6th, 2022
776
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.25 KB | None | 0 0
  1. /*
  2. Рубрика "АНЕКИ В КОММЕНТАХ":
  3.  
  4. В дверь постучали 1024 раза. Килобайт - подумал Штирлиц.
  5. Дурак - подумали 128 осьминогов
  6.  
  7. */
  8.  
  9. #define _CRT_SECURE_NO_DEPRECATE
  10. #pragma warning(disable:4996)
  11. //#pragma optimize( "g", on )
  12. #include <iostream>
  13. #define _USE_MATH_DEFINES
  14. #include <math.h>
  15. #include <cmath>
  16. #include <vector>
  17. #include <map>
  18. #include <stack>
  19. #include <set>
  20. #include <queue>
  21. #include <iomanip>
  22. #include <deque>
  23. #include <string>
  24. #include <algorithm>
  25. #include <numeric>
  26.  
  27. using namespace std;
  28.  
  29. #define ll long long
  30. #define ull unsigned long long
  31.  
  32. map<int, int> ids;
  33. vector<int> nm;
  34. int getId(int num) {
  35.     if (ids.count(num))
  36.         return ids[num];
  37.     ids[num] = nm.size();
  38.     nm.push_back(num);
  39. }
  40. int main() {
  41.     cin.tie(NULL);
  42.     cout.tie(NULL);
  43.     ios_base::sync_with_stdio(false);
  44.     //freopen("INPUT.TXT", "r", stdin);
  45.     //freopen("OUTPUT.TXT", "w", stdout);
  46.     //cout << fixed << setprecision(15);
  47.     int n, k, cur;
  48.     cin >> n >> k;
  49.     set<int> st;
  50.     map<int, int> cn;
  51.     deque<int> deq;
  52.     for (int i = 0; i < n; i++) {
  53.         cin >> cur;
  54.         deq.push_back(cur);
  55.         if (!cn.count(cur))
  56.             cn[cur] = 1;
  57.         else {
  58.             if (cn[cur] == 1)
  59.                 st.erase(cur);
  60.             cn[cur]++;
  61.         }
  62.  
  63.  
  64.         if (cn[cur] == 1)
  65.             st.insert(cur);
  66.  
  67.         /*
  68.         6 4 3 3 3 4 4 2
  69.         */
  70.         /*
  71.         cout << " cur " << cur << ": " << cn[cur] << '\n' << " _";
  72.         for (auto bg = st.begin(); bg != st.end(); bg++)
  73.             cout << *bg << ' ';
  74.         cout << '\n';*/
  75.         if (deq.size() >= k) {
  76.             if (deq.size() > k) {
  77.                 cn[deq.front()]--;
  78.                 //cout << "   deleting " << deq.front() << ": " << cn[deq.front()] << '\n' << " _";
  79.                 if (cn[deq.front()] == 0)
  80.                     st.erase(deq.front());
  81.                 if (cn[deq.front()] == 1)
  82.                     st.insert(deq.front());
  83.                 deq.pop_front();
  84.                 /*
  85.                 for (auto bg = st.begin(); bg != st.end(); bg++)
  86.                     cout << *bg << ' ';
  87.                 cout << '\n';*/
  88.             }
  89.            
  90.             cout << ((st.size() > 0) ? to_string(*(--st.end())) : "Nothing") << '\n';
  91.         }
  92.  
  93.        
  94.        
  95.  
  96.         //if (i < k) {
  97.         // 
  98.         //  continue;
  99.         //}
  100.     }
  101.  
  102.     return 0;
  103.  
  104. }
  105.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement