Loading...
Submission
# When Author Problem Language CPU Memory
7029 2023-02-27 12:00:03 SakiBee Min Substring C++ 17 3 ms 3460 kb Wrong Answer - 1
Test Cases
# CPU Memory Points
1 3 ms 3460 kb 0 Wrong Answer
2 0 ms 0 kb 0 Skipped
3 0 ms 0 kb 0 Skipped
4 0 ms 0 kb 0 Skipped
5 0 ms 0 kb 0 Skipped
6 0 ms 0 kb 0 Skipped
7 0 ms 0 kb 0 Skipped
8 0 ms 0 kb 0 Skipped
9 0 ms 0 kb 0 Skipped
10 0 ms 0 kb 0 Skipped
11 0 ms 0 kb 0 Skipped
12 0 ms 0 kb 0 Skipped
13 0 ms 0 kb 0 Skipped
14 0 ms 0 kb 0 Skipped
15 0 ms 0 kb 0 Skipped
16 0 ms 0 kb 0 Skipped
17 0 ms 0 kb 0 Skipped
18 0 ms 0 kb 0 Skipped
Source Code
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int inf = 1e9+7, N = 1e5 + 7;
  4.  
  5. string s;
  6. int n, unq;
  7.  
  8. int dp[N][27];
  9.  
  10. void precal() {
  11. vector<int> v(26, 0);
  12. for (int i = 0; i < n; i++) {
  13. for (int j = 0; j < 26; j++) dp[i+1][j] = dp[i][j];
  14. dp[i+1][s[i] - 'a']++;
  15. }
  16. }
  17.  
  18. bool bee(int m) {
  19. for (int i = 0; i + m <= n; i++) {
  20. int u = 0;
  21. for (int j = 0; j < 26; j++) {
  22. u += (dp[i+m][j] - dp[i][j]);
  23. }
  24. if(u >= unq) return true;
  25. }
  26. return false;
  27. }
  28.  
  29. int32_t main () {
  30. ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
  31. cin >> s;
  32. n = s.size();
  33. precal();
  34. unq = 0;
  35. vector<int> v(26, 0);
  36. for (int i = 0; i < n; i++) {
  37. if(v[s[i] - 'a'] == 0) unq++;
  38. v[s[i] - 'a']++;
  39. }
  40.  
  41. int l = 1, r = n, mid, ans = inf;
  42. while(l <= r) {
  43. mid = (l+r) >> 1;
  44. if(bee(mid)) {
  45. ans = min(ans, mid);
  46. r = mid - 1;
  47. }
  48. else l = mid + 1;
  49.  
  50. }
  51. cout << ans << endl;
  52. }