Advertisement
Guest User

Untitled

a guest
Aug 20th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. bool check(string &s,string &t,int l,int r){
  6. int n = s.length();
  7. int m = t.length();
  8. int pos = 0;
  9. for(int i = 0; i < n; i++){
  10. if(pos < m && s[i] == t[pos] && (i < l || i > r))
  11. pos++;
  12. }
  13. return pos == m;
  14. }
  15.  
  16. int solve(string &s,string &t){
  17. int m = t.length();
  18. int n = s.length();
  19. int resp =0;
  20. int l = 0;
  21. int r = n-m+1;
  22.  
  23. while(l <= r){
  24. int mid = (l+r)>>1;
  25. bool ans = false;
  26. for(int i = 0; i < n-mid+1; i++){
  27. ans = ans || check(s,t,i,i+mid-1);
  28. if(ans)
  29. break;
  30. }
  31. if(ans)
  32. resp = max(resp,mid);
  33. if(ans)
  34. l = mid+1;
  35. else
  36. r = mid-1;
  37. }
  38. return resp;
  39. }
  40.  
  41. int main(){
  42. ios_base::sync_with_stdio(false);
  43. cin.tie(NULL);
  44. string s,t;
  45. cin>>s>>t;
  46. if(s == t)
  47. cout<<0<<endl;
  48. else
  49. cout<<solve(s,t)<<endl;
  50.  
  51.  
  52.  
  53. return 0;
  54. }
  55. close
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement