mid=(low+high)/2
low=k,high=string.size()
ans=-1
while(low<=high):
mid=(low+high)/2
ll flag=0 // to check if there is a string with length mid>=k that can be made palindrome
for(i=0;i+mi-1<=string.size();i++)
{
ll ctr=0;
for(j=0;j<26;j++)
{
ctr+=(dp[i+mi-1][j]-dp[i-1][j])%2; // counting chars with odd frequency
}
if(k%2==0)
{
if(ctr==0) // all chars appear even no. of times
{
flag=1; // found a string
break;
}
else
{
ll cur_len=mid-ctr; // remove single appearance of all chars with odd frequency
if(cur_len>=k)
{
flag=1;
break;
}
}
}
else
{
if(ctr!=0) // odd palindrome should have atleast one char with odd frequency
{
ll cur_len=mid-ctr+1; // adding 1 to include one odd char
if(cur_len>=k)
{
flag=1;
break;
}
}
else
{
if(mid-1>=k) // just remove one occurrence of a character to make it's frequency odd
{
flag=1;
break;
}
}
}
}
if(flag)
{
ans=mi;
lo=mi+1;
}
else
{
hi=mi-1;
}
}
cout<<ans;
bWlkPShsb3craGlnaCkvMgpsb3c9ayxoaWdoPXN0cmluZy5zaXplKCkKYW5zPS0xCndoaWxlKGxvdzw9aGlnaCk6CiAgIG1pZD0obG93K2hpZ2gpLzIKICAgbGwgZmxhZz0wIC8vIHRvIGNoZWNrIGlmIHRoZXJlIGlzIGEgc3RyaW5nIHdpdGggbGVuZ3RoIG1pZD49ayB0aGF0IGNhbiBiZSBtYWRlIHBhbGluZHJvbWUgCiAgIGZvcihpPTA7aSttaS0xPD1zdHJpbmcuc2l6ZSgpO2krKykKICAgICB7IAogICAgIAlsbCBjdHI9MDsKICAgICAgIGZvcihqPTA7ajwyNjtqKyspCiAgICAgICAgeyAKICAgICAgICAJY3RyKz0oZHBbaSttaS0xXVtqXS1kcFtpLTFdW2pdKSUyOyAvLyBjb3VudGluZyBjaGFycyB3aXRoIG9kZCBmcmVxdWVuY3kKICAgICAgICB9CiAgICAgICAgaWYoayUyPT0wKQogICAgICAgIHsKICAgICAgICAJaWYoY3RyPT0wKSAgLy8gYWxsIGNoYXJzIGFwcGVhciBldmVuIG5vLiBvZiB0aW1lcwogICAgICAgIAl7CiAgICAgICAgCQlmbGFnPTE7IC8vIGZvdW5kIGEgc3RyaW5nCiAgICAgICAgCQlicmVhazsKICAgICAgICAJfQogICAgICAgIAllbHNlIAogICAgICAgIAl7CiAgICAgICAgCQlsbCBjdXJfbGVuPW1pZC1jdHI7IC8vIHJlbW92ZSBzaW5nbGUgYXBwZWFyYW5jZSBvZiBhbGwgY2hhcnMgd2l0aCBvZGQgZnJlcXVlbmN5CiAgICAgICAgCQlpZihjdXJfbGVuPj1rKQogICAgICAgIAkJewogICAgICAgIAkJCWZsYWc9MTsKICAgICAgICAJCQlicmVhazsKICAgICAgICAJCX0KICAgICAgICAJfQogICAgICAgIH0KICAgICAgICBlbHNlIAogICAgICAgIHsKICAgICAgICAJaWYoY3RyIT0wKSAvLyBvZGQgcGFsaW5kcm9tZSBzaG91bGQgaGF2ZSBhdGxlYXN0IG9uZSBjaGFyIHdpdGggb2RkIGZyZXF1ZW5jeQogICAgICAgIAl7CiAgICAgICAgCQlsbCBjdXJfbGVuPW1pZC1jdHIrMTsgLy8gYWRkaW5nIDEgdG8gaW5jbHVkZSBvbmUgb2RkIGNoYXIgCiAgICAgICAgCQlpZihjdXJfbGVuPj1rKQogICAgICAgIAkJewogICAgICAgIAkJCWZsYWc9MTsKICAgICAgICAJCQlicmVhazsKICAgICAgICAJCX0KICAgICAgICAJfQogICAgICAgIAllbHNlIAogICAgICAgIAl7CiAgICAgICAgCQlpZihtaWQtMT49aykgLy8ganVzdCByZW1vdmUgb25lIG9jY3VycmVuY2Ugb2YgYSBjaGFyYWN0ZXIgdG8gbWFrZSBpdCdzIGZyZXF1ZW5jeSBvZGQKICAgICAgICAJCXsKICAgICAgICAJCQlmbGFnPTE7CiAgICAgICAgCQkJYnJlYWs7CiAgICAgICAgCQl9CiAgICAgICAgCX0KICAgICAgICB9CiAgICAgfQogICAgIGlmKGZsYWcpCiAgICAgewogICAgIAlhbnM9bWk7CiAgICAgCWxvPW1pKzE7CiAgICAgfQogICAgIGVsc2UgCiAgICAgewogICAgIAloaT1taS0xOwogICAgIH0KfQpjb3V0PDxhbnM7CiA=
prog.cpp:1:1: error: C++ requires a type specifier for all declarations
mid=(low+high)/2
^
prog.cpp:1:6: error: use of undeclared identifier 'low'
mid=(low+high)/2
^
prog.cpp:1:10: error: use of undeclared identifier 'high'
mid=(low+high)/2
^
prog.cpp:2:11: error: expected ';' after top level declarator
low=k,high=string.size()
^
;
prog.cpp:61:1: error: extraneous closing brace ('}')
}
^
prog.cpp:62:1: error: unknown type name 'cout'
cout<<ans;
^
prog.cpp:62:5: error: expected unqualified-id
cout<<ans;
^
7 errors generated.