Advertisement
Josif_tepe

Untitled

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