fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long int lli;
  4.  
  5. int solve(string s, int n)
  6. {
  7. map <char, int> m;
  8. set <char> st;
  9. for (int i = 0; i < n; i++)
  10. {
  11. st.insert(s[i]);
  12. }
  13. int total = st.size();
  14. set <char> :: iterator itr;
  15. for (itr = st.begin(); itr != st.end(); itr++)
  16. {
  17. m.insert({*itr, 0});
  18. }
  19. int left = 0, right = 0, min = INT_MAX;
  20. int cursize = 0;
  21. set <char> st2;
  22. while (1)
  23. {
  24. if (m.find(s[right]) != m.end())
  25. {
  26. m[s[right]]++;
  27. st2.insert(s[right]);
  28. }
  29. if (st2.size() == total)
  30. {
  31. while (m[s[left]] > 1)
  32. {
  33. m[s[left]]--;
  34. left++;
  35. }
  36. cursize = right - left + 1;
  37. if (cursize < min) min = cursize;
  38. }
  39. if (right == n - 1) break;
  40. right++;
  41. }
  42. return min;
  43. }
  44.  
  45. int main()
  46. {
  47. ios_base::sync_with_stdio(false);
  48. cin.tie(NULL);
  49.  
  50. int n;
  51. cin >> n;
  52. string s;
  53. cin >> s;
  54. cout << solve(s, n) << endl;
  55.  
  56. return 0;
  57. }
Success #stdin #stdout 0s 4500KB
stdin
13
aaBCCeBdAaeCc
stdout
7