Advertisement
Josif_tepe

Untitled

Mar 6th, 2023
936
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.12 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <set>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     int n, k;
  9.     cin >> n >> k;
  10.     vector<int> v(n);
  11.    
  12.     for(int i = 0; i < n; i++) {
  13.         cin >> v[i];
  14.     }
  15.     multiset<int> ms;
  16.     for(int i = 0; i < k; i++) {
  17.         ms.insert(0);
  18.     }
  19.     vector<int> cnt(k, 0);
  20.     int i = 0, j = 0;
  21.     int result = 0;
  22.     while(j < n) {
  23.         if(*ms.begin() <= 3 and *ms.rbegin() <= 3) {
  24.             if(v[j] < k) {
  25.                 ms.erase(ms.find(cnt[v[j]]));
  26.                 cnt[v[j]]++;
  27.                 ms.insert(cnt[v[j]]);
  28.             }
  29.             j++;
  30.             if(*ms.begin() == 3 and *ms.rbegin() == 3) {
  31.                 result = max(result, j - i);
  32.             }
  33.         }
  34.         else {
  35.             if(v[i] < k) {
  36.                 ms.erase(ms.find(cnt[v[i]]));
  37.                 cnt[v[i]]--;
  38.                 ms.insert(cnt[v[i]]);
  39.             }
  40.             i++;
  41.             if(*ms.begin() == 3 and *ms.rbegin() == 3) {
  42.                 result = max(result, j - i);
  43.             }
  44.         }
  45.     }
  46.     cout << result << endl;
  47.    
  48.     return 0;
  49. }
  50.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement