➤ Problem Link : 616D. Longest k
✅ C++ Solution :
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
ll n,k;
cin>>n>>k;
ll arr[n+1];
for(int i=1;i<=n;i++)
cin>>arr[i];
int i=1;
int ai=-1,aj=-2;
int mp[1000001]={0};
int cnt=0;
for(int j=1;j<=n;j++)
{
mp[arr[j]]++;
if(mp[arr[j]] == 1)
cnt++;
while(i<j && cnt>k)
{
mp[arr[i]]--;
if(mp[arr[i]]==0)
cnt--;
i++;
}
if(aj-ai < j-i)
aj=j,ai=i;
}
cout<<ai<<" "<<aj;
}
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!
