P8815 WA 70pts 求hack
  • 板块学术版
  • 楼主zrt090604
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/8/1 13:24
  • 上次更新2023/11/3 06:34:55
查看原帖
P8815 WA 70pts 求hack
459188
zrt090604楼主2023/8/1 13:24

谢大佬

#include<bits/stdc++.h>
using namespace std;
char s[1000005];
int ans, cnt1, cnt2, flag;
int main() {
	scanf("%s", s);
	int len = strlen(s);
	for(int i = 0;s[i];++i) {
		if(flag) {
			if(s[i]=='(') {
				int cnt = 1;
				while(cnt) {
					++i;
					if(s[i] == '(') ++cnt;
					if(s[i] == ')') --cnt;
				}
			}
			else if(flag == 1) ++i;
			else if(flag == 2) {
				int pos = i+1;
				while(pos<len && s[pos]!='|' && s[pos]!='&') ++pos;
				if(pos == len) break;
				if(s[pos] == '&') {
					while(i<len && s[i]!='|' && s[i]!=')') ++i;
				}
				else ++i;
			}
			flag = 0;
		}
		if(s[i] == '1') ans = 1;
		if(s[i] == '0') ans = 0;
		if(s[i]=='&'&&ans==0) flag = 1, ++cnt1;
		if(s[i]=='|'&&ans==1) flag = 2, ++cnt2;
	}
	printf("%d\n%d %d", ans, cnt1, cnt2);
	return 0;
}
2023/8/1 13:24
加载中...