fork(1) download
  1. #include <bits/stdc++.h>
  2. #define VuDucNam ios_base::sync_with_stdio(false);
  3. #define Lop9a6 cin.tie(NULL);
  4. #define THCSPhamVanDong cout.tie(NULL);
  5. #define ll long long
  6. #define el cout << '\n'
  7. #define sz(a) (ll) a.size()
  8. #define all(a) a.begin(), a.end()
  9. #define fi first
  10. #define se second
  11. #define fill(a, x) memset(a, x, sizeof(a))
  12. #define file(name) \
  13.   if (fopen(name ".inp", "r")) \
  14.   { \
  15.   freopen(name ".inp", "r", stdin); \
  16.   freopen(name ".out", "w", stdout); \
  17.   }
  18. #define TIME (1.0 * clock() / CLOCKS_PER_SEC)
  19. #define RUNTIME cerr << "\nRuntime: " << TIME << "s.\n"
  20.  
  21. using namespace std;
  22.  
  23. const ll MOD = 1e9 + 7;
  24. const ll inf = LLONG_MAX;
  25.  
  26. void solve()
  27. {
  28. string s;
  29. getline(cin, s);
  30. int l=0,ans1=l,ans2=0;
  31. int mp[30]={0};
  32. for (int r=0;r<sz(s);++r)
  33. {
  34. // Ta cố định 1 biến right để cố định của sổ
  35. mp[s[r]-'A']++;// nếu gặp kí tự s[r] thì tăng thêm +1
  36. while (mp[s[r]-'A']>1){ // nếu mà xuất hiện s[r] nhiều hơn 1 lần thì ta phải kéo cửa sổ lại cho đến khi chỉ xuất hiện s[r]==1
  37. mp[s[l]-'A']--;// giảm đi -1 với a[l]
  38. l++;// tăng left
  39. }
  40. if(r-l+1>ans2){
  41. ans1=l+1; // vì yêu cầu đề bài là chuỗi bắt đầu từ 1 mà trong string thì bắt đầu từ 0 nên phải +1 vào left
  42. ans2=r-l+1;
  43. }
  44. }
  45. cout << ans1 << " " << ans2;
  46. el;
  47. }
  48.  
  49. int main()
  50. {
  51. VuDucNam Lop9a6 THCSPhamVanDong
  52. //file();
  53. solve();
  54. RUNTIME;
  55. return 0;
  56. }
  57.  
Success #stdin #stdout #stderr 0s 5272KB
stdin
Standard input is empty
stdout
0 0
stderr
Runtime: 0.004703s.