Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- bool check(string &s,string &t,int l,int r){
- int n = s.length();
- int m = t.length();
- int pos = 0;
- for(int i = 0; i < n; i++){
- if(pos < m && s[i] == t[pos] && (i < l || i > r))
- pos++;
- }
- return pos == m;
- }
- int solve(string &s,string &t){
- int m = t.length();
- int n = s.length();
- int resp =0;
- int l = 0;
- int r = n-m+1;
- while(l <= r){
- int mid = (l+r)>>1;
- bool ans = false;
- for(int i = 0; i < n-mid+1; i++){
- ans = ans || check(s,t,i,i+mid-1);
- if(ans)
- break;
- }
- if(ans)
- resp = max(resp,mid);
- if(ans)
- l = mid+1;
- else
- r = mid-1;
- }
- return resp;
- }
- int main(){
- ios_base::sync_with_stdio(false);
- cin.tie(NULL);
- string s,t;
- cin>>s>>t;
- if(s == t)
- cout<<0<<endl;
- else
- cout<<solve(s,t)<<endl;
- return 0;
- }
- close
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement