92pts WA on #7 && #21
查看原帖
92pts WA on #7 && #21
1183074
xzy_AK_IOI楼主2024/7/6 16:57
#include<bits/stdc++.h>
using namespace std;
string s;
int n,k;
bool check(int l){
	char g=s[0];
	int y=1;
	int ans=0;
	for (int i=1;i<=n-1;i++){
		char o=s[i];
		if (o==g){
			if (y+1<=l){
				y++;
			}
			else{
				y=1;
				if (g=='N'){
					g='F';
				}
				else{
					g='N';
				}
				ans++;
			}
		}
		else{
			y=1;
			g=o;
		}
	}
	return ans<=k;
}
int main()
{
	cin>>n>>k>>s;
	int l=0,r=n+1,mid;
	while (l+1!=r){
		mid=(l+r)>>1;
		if (check(mid)){
			r=mid;
		}
		else{
			l=mid;
		}
	}
	cout<<r;
	return 0;
}
2024/7/6 16:57
加载中...