求助70pts
查看原帖
求助70pts
500803
zzxzzxCCC楼主2024/7/17 15:33
#include<bits/stdc++.h>
using namespace std;
bool st, val, ed;
int ands, ors, duanlu;
string str;
int main(){
	cin >> str;
	for(int i = 0 ; i < str.size() ; i ++){
		if(duanlu){
			if(str[i] == '('){ 
				int k = 1;
				while(k){
					i ++;
					if(str[i] == '(') k ++;
					if(str[i] == ')') k --;
				}
			}
			else if(duanlu == 1 && str[i] == '|')	duanlu = 0;
			else if(duanlu == 2 && str[i] == '&')	duanlu = 0;
			else if(str[i] == ')')	duanlu = 0;
			else if(duanlu == 1 && str[i] == '&')	ands ++;
			else if(duanlu == 2 && str[i] == '|')	ors ++;
		}
		else{
			if(str[i] == '1') val = 1;
			if(str[i] == '0') val = 0;
			if(str[i] == '&' && val == 0)	duanlu = 1, ands ++;
			if(str[i] == '|' && val == 1)	duanlu = 2, ors ++;
		}
	}
	printf("%d\n%d %d\n", val, ands, ors);
	return 0;
}
2024/7/17 15:33
加载中...