➤ Problem Link : BROKEN
👉 Hint : edit please
✅ C++ Solution :
#include<bits/stdc++.h> using namespace std; unordered_map<char,int> us; int main() { int m; while(scanf("%d",&m)!=EOF) { if(m==0) break; int i,k=0,ans=0; us.clear(); string s; scanf("\n"); getline(cin,s); int l=s.length(); for(i=0;i<l;i++) us[s[i]]=0; for(i=0;i<l;i++) { if(us[s[i]]==0) { if(k==m) break; k++; } us[s[i]]++; } ans=max(ans,i); for(int j=1;j<l;j++) { us[s[j-1]]--; if(us[s[j-1]]<0) us[s[j-1]]=0; if(us[s[j-1]]!=0) continue; k--; while(i<l) { if(k>=m && us[s[i]]==0) break; if(us[s[i]]==0) k++; us[s[i]]++; i++; } ans=max(ans,i-j); } cout<<ans<<endl; } }
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!!