Loading...
Submission
# When Author Problem Language CPU Memory
6993 2023-02-26 21:53:08 SakiBee Min Substring C++ 17 1119 ms 3592 kb Time Limit Exceeded - 11
Test Cases
# CPU Memory Points
1 3 ms 3400 kb 1 Accepted
2 3 ms 3476 kb 1 Accepted
3 3 ms 3408 kb 1 Accepted
4 3 ms 3320 kb 1 Accepted
5 3 ms 3388 kb 1 Accepted
6 6 ms 3576 kb 1 Accepted
7 16 ms 3576 kb 1 Accepted
8 42 ms 3320 kb 1 Accepted
9 5 ms 3488 kb 1 Accepted
10 351 ms 3592 kb 1 Accepted
11 1119 ms 660 kb 0 Time Limit Exceeded
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;
  4.  
  5. string s;
  6. int n, unq;
  7.  
  8. bool bee(int m) {
  9. for (int i = 0; i + m <= n; i++) {
  10. vector<int> v(26, 0);
  11. int u = 0;
  12. for (int j = i; j < m+i; j++) {
  13. if(v[s[j] - 'a'] == 0) u++;
  14. v[s[j] - 'a']++;
  15. }
  16. if(u == unq) return true;
  17. }
  18. return false;
  19. }
  20.  
  21. int32_t main () {
  22. ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
  23. cin >> s;
  24. n = s.size();
  25. unq = 0;
  26. vector<int> v(26, 0);
  27. for (int i = 0; i < n; i++) {
  28. if(v[s[i] - 'a'] == 0) unq++;
  29. v[s[i] - 'a']++;
  30. }
  31.  
  32. int l = 1, r = n, mid, ans = inf;
  33. while(l <= r) {
  34. mid = (l+r) >> 1;
  35. if(bee(mid)) {
  36. ans = min(ans, mid);
  37. r = mid - 1;
  38. }
  39. else l = mid + 1;
  40.  
  41. }
  42. cout << ans << endl;
  43. }