100分错了#4,基础代码菜鸟!
查看原帖
100分错了#4,基础代码菜鸟!
957205
Frommyvalleyuphard楼主2023/7/28 16:48
#include<iostream>
#include<string>
using namespace std;
int main(){
	string a;
	getline(cin,a);
	int b[a.length()][2]={},o=0,o2=0,o3=0;
	for(int c=0;c<a.length();c++){
		b[c][0]=-1,b[c][1]=2;
	}
	for(int d=0;d<a.length();d++){
		if(a[d]=='t'){
			if(b[o][0]!=-1){
				cout<<"error";
				return 0;
			}
			b[o][0]=1;
			if(b[o][1]<2){
				if(b[o][0]==-1){
					cout<<"error";
					return 0;
				}
				b[o][0]=(b[o][0]+b[o][1])%2;
				b[o][1]=2;
			}
			d+=4;
		}else if(a[d]=='f'){
			if(b[o][0]!=-1){
				cout<<"error";
				return 0;
			}
			b[o][0]=0;
			if(b[o][1]<2){
				if(b[o][0]==-1){
					cout<<"error";
					return 0;
				}
				b[o][0]=(b[o][0]+b[o][1])%2;
				b[o][1]=2;
			}

			d+=5;
		}else if(a[d]=='o'){
			if(b[o][0]==-1){
				cout<<"error";
				return 0;
			}
			b[o][1]=20;
			o++;
			d+=2;
		}else if(a[d]=='a'){
			if(b[o][0]==-1){
				cout<<"error";
				return 0;
			}
			b[o][1]=22;
			o++;
			d+=3;
		}else{
			b[o][1]=(b[o][1]+1)%2;
			d+=3;
		}
	}
	if(a[a.length()-1]=='t'){
		cout<<"error";
		return 0;
	}
	if(b[o][1]<2){
		b[o][1]=2;
	}
	int b2[o+1][2]={};
	for(int c=0;c<=o;c++){
		b2[c][0]=-1,b2[c][1]=2;
	}
	for(int d=0;d<=o;d++){
		if(b[d][1]==22){
			b2[o2][0]=(b[d][0]&&b[d+1][0]);
			b2[o2][1]=b[d+1][1];
			b[d+1][0]=(b[d][0]&&b[d+1][0]);
		}else{
			b2[o2][0]=b[d][0];
			b2[o2][1]=b[d][1];
			o2++;
		}
	}
	int b3[o2][2]={};
	for(int c=0;c<o2;c++){
		b3[c][0]=-1,b3[c][1]=2;
	}
	for(int d=0;d<o2;d++){
		if(b2[d][1]==20){
			b3[o3][0]=(b2[d][0]||b2[d+1][0]);
			b3[o3][1]=b2[d+1][1];
			b2[d+1][0]=(b2[d][0]||b2[d+1][0]);
		}else{
			b3[o3][0]=b2[d][0];
			b3[o3][1]=b2[d][1];
			o3++;
		}
	}
	if(b3[0][0]==1){
		cout<<"true";
	}else{
		cout<<"false";
	}
}
2023/7/28 16:48
加载中...