注意到我们只需要转换小写字母即可。

我们记录每个字符串的小写字母个数为cnt:

当操作数k≤cnt时,只需要大写字母+操作数k=最终的大写字母个数;

当操作数k>cnt时,则所有字母都可以转为大写,但是会剩余操作次数k-cnt,最后对单个字母操作,若为奇数就n-1,反之为n。

#include <iostream>
#include <algorithm>
#include <cstring>

using namespace std;

int n,k;
int cnt;
string s;

int main() {
    scanf("%d %d",&n,&k);
    cin >> s;
    for(int i=0;i<s.size();i++){
        if(s[i] > 'Z')
            ++cnt;
    }
    if(k <= cnt)
        printf("%d",n-cnt+k);
    else
        printf("%d",n-((k-cnt)%2));
    return 0;
}