为啥ide能出结果,提交报re
查看原帖
为啥ide能出结果,提交报re
123346
1qaz0okm楼主2022/1/15 16:04
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int n,k,sum,js;
char p[505];
string s;
int check(string s),find(string s);
int find(string s){
	for(int i=0;i<=n-1;i++){
		if(s[i]=='?'){
			s[i]='(';find(s);
			s[i]='*';find(s);
			s[i]=')';find(s);
			s[i]='?';return 0;
		}
	}
	//string ts=s;
	sum+=check(s);
	//if(check(s)){
	//	js++;
	//	cout<<ts<<"		:"<<js<<'\n';
	//}
}
int check(string s){
	for(int i=0;i<=n-1;i++){
		if(s[i]=='?') return 0;
	}
	while(1){
		bool c=0;
		for(int i=0;i<=n-1;i++){
			if(s[i]!='0'){
				c=1;break;
			}
		}
		if(c){
			bool d=1;
			for(int i=0;i<=n-1;i++){
				if(s[i]==')'){
					int q=i-k-1;
					for(int j=i-1;j>=q;j--){
						if(s[j]=='0') q--;
						if(s[j]=='('){
							if(s[j-1]=='*'&&s[i+1]=='*'&&s[i+2]!='*'&&s[i-2]!='*'&&s[i+2]!='('&&s[i-2]!=')') return 0;
							d=0;
							for(j;j<=i;j++){
								s[j]='0';
							}
							break;
						}
					}
					break;
				}
				if(s[i]=='*'&&s[i-1]=='0'){
					for(int j=i;j<=i+k;j++){
						if(s[j]!='*'&&s[j]!='0') break;
						if(s[j]=='0'){
							int q=j;
							d=0;
							for(int j=i;j<=q-1;j++){
								s[j]='0';
							}
							break;
						}
					}
				}
			}
			if(d) return 0;
		}
		else return 1;
	}
}
int main(){
	//freopen("d:/桌面/bracket3.in","r",stdin);
	cin>>n>>k>>s;
	find(s);
	cout<<sum;
	return 0;
} 
2022/1/15 16:04
加载中...