ABC401D题代码

#include
using namespace std;
const int N=2e5+5;
int n,k,t=0;
char s[N];
int main(){
	scanf("%d%d%s",&n,&k,s+1/*我自己改的*/);
	for(int i=1;i<=n;++i)
		if(s[i-1]=='o'||s[i+1]=='o')s[i]='.';
		else if(s[i]=='o')t++;
	if(t==k){
		for(int i=1;i<=n;++i)
			if(s[i]=='o')putchar('o');//别人改的
			else putchar('.');//同上
		return 0;
	}
	for(int i=1,j=1;i<=n;i=j){
		while(j<=n&&(s[i]=='?')==(s[j]=='?'))j++;
		if(s[i]=='?')t+=(j-i+1)/2;
	}
	if(t==k)
		for(int i=1,j=1;i<=n;i=j){
			while(j<=n&&(s[i]=='?')==(s[j]=='?'))j++;
			if(s[i]=='?'&&(j-i)%2)
				for(int k=i;k

你可能感兴趣的:(算法,数据结构)