#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
template < class S, class T> inline S chmax( S & a, T b) {
if ( a< b) {
a= b;
}
return a;
}
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
int c[ 100000 ] ;
class Solution{
public :
int equalSubstring( string s, string t, int mx) {
int i;
int j;
int k;
int N = s.size ( ) ;
int res = 0 ;
for ( i= ( 0 ) ; i< ( N) ; i++ ) {
c[ i] = abs ( s[ i] - t[ i] ) ;
}
j = k = 0 ;
for ( i= ( 0 ) ; i< ( N) ; i++ ) {
while ( j < N && k + c[ j] <= mx) {
k + = c[ j++ ] ;
}
chmax( res, j - i) ;
k - = c[ i] ;
}
return res;
}
}
;
// cLay varsion 20191006-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// int c[1d5];
//
// class Solution {
// public:
// int equalSubstring(string s, string t, int mx) {
// int i, j, k, N = s.size(), res = 0;
// rep(i,N) c[i] = abs(s[i]-t[i]);
// j = k = 0;
// rep(i,N){
// while(j < N && k + c[j] <= mx) k += c[j++];
// res >?= j - i;
// k -= c[i];
// }
// return res;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnRlbXBsYXRlPGNsYXNzIFMsIGNsYXNzIFQ+IGlubGluZSBTIGNobWF4KFMgJmEsIFQgYil7CiAgaWYoYTxiKXsKICAgIGE9YjsKICB9CiAgcmV0dXJuIGE7Cn0KI2RlZmluZSBtYWluIGR1bW15X21haW4KaW50IG1haW4oKXsKICByZXR1cm4gMDsKfQojdW5kZWYgbWFpbgppbnQgY1sxMDAwMDBdOwpjbGFzcyBTb2x1dGlvbnsKICBwdWJsaWM6CiAgaW50IGVxdWFsU3Vic3RyaW5nKHN0cmluZyBzLCBzdHJpbmcgdCwgaW50IG14KXsKICAgIGludCBpOwogICAgaW50IGo7CiAgICBpbnQgazsKICAgIGludCBOID0gcy5zaXplKCk7CiAgICBpbnQgcmVzID0gMDsKICAgIGZvcihpPSgwKTtpPChOKTtpKyspewogICAgICBjW2ldID0gYWJzKHNbaV0tdFtpXSk7CiAgICB9CiAgICBqID0gayA9IDA7CiAgICBmb3IoaT0oMCk7aTwoTik7aSsrKXsKICAgICAgd2hpbGUoaiA8IE4gJiYgayArIGNbal0gPD0gbXgpewogICAgICAgIGsgKz0gY1tqKytdOwogICAgICB9CiAgICAgIGNobWF4KHJlcywgaiAtIGkpOwogICAgICBrIC09IGNbaV07CiAgICB9CiAgICByZXR1cm4gcmVzOwogIH0KfQo7Ci8vIGNMYXkgdmFyc2lvbiAyMDE5MTAwNi0xCgovLyAtLS0gb3JpZ2luYWwgY29kZSAtLS0KLy8gI2RlZmluZSBtYWluIGR1bW15X21haW4KLy8ge30KLy8gI3VuZGVmIG1haW4KLy8gCi8vIGludCBjWzFkNV07Ci8vIAovLyBjbGFzcyBTb2x1dGlvbiB7Ci8vIHB1YmxpYzoKLy8gICBpbnQgZXF1YWxTdWJzdHJpbmcoc3RyaW5nIHMsIHN0cmluZyB0LCBpbnQgbXgpIHsKLy8gICAgIGludCBpLCBqLCBrLCBOID0gcy5zaXplKCksIHJlcyA9IDA7Ci8vICAgICByZXAoaSxOKSBjW2ldID0gYWJzKHNbaV0tdFtpXSk7Ci8vICAgICBqID0gayA9IDA7Ci8vICAgICByZXAoaSxOKXsKLy8gICAgICAgd2hpbGUoaiA8IE4gJiYgayArIGNbal0gPD0gbXgpIGsgKz0gY1tqKytdOwovLyAgICAgICByZXMgPj89IGogLSBpOwovLyAgICAgICBrIC09IGNbaV07Ci8vICAgICB9Ci8vICAgICByZXR1cm4gcmVzOwovLyAgIH0KLy8gfTsK