Advertisement
Josif_tepe

Untitled

Mar 23rd, 2023
736
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 <map>
  3. #include <set>
  4.  
  5.  
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10.     int n,k;
  11.     cin>>n>>k;
  12.     int x[n];
  13.     map<int,int>mapa;
  14.     map<int,int>cnt;
  15.     for(int i=0;i<n;i++)
  16.     {
  17.         cin>>x[i];
  18.     }
  19.     int kn[k];
  20.     for(int i=0;i<k;i++)
  21.     {
  22.         cin>>kn[i];
  23.         mapa[kn[i]]++;
  24.     }
  25.     multiset<int>ms;
  26.     for(int i = 0; i < k; i++) {
  27.         ms.insert(0);
  28.     }
  29.     int ans=0;
  30.     int i=0,j=0;
  31.     while(j<n)
  32.     {
  33.         if(*ms.begin()<=3 && *ms.rbegin()<=3)
  34.         {
  35.             if(mapa[x[j]]==1)
  36.             {
  37.                 ms.erase(ms.find(cnt[x[j]]));
  38.                 cnt[x[j]]++;
  39.                 ms.insert(cnt[x[j]]);
  40.             }
  41.             if(*ms.begin()==3 && *ms.rbegin()==3)
  42.             {
  43.                 ans=max(ans, j-i+1);
  44.             }
  45.             j++;
  46.         }else
  47.         {
  48.             if(mapa[x[i]]==1)
  49.             {
  50.                 ms.erase(ms.find(cnt[x[i]]));
  51.                 cnt[x[i]]--;
  52.                 ms.insert(cnt[x[i]]);
  53.             }
  54.  
  55.             i++;
  56.         }
  57.     }
  58.     cout<<ans<<endl;
  59.     return 0;
  60. }
  61.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement