比赛 |
CSP2022普及组 |
评测结果 |
AAAAWWWWWWWWWWWWWWWW |
题目名称 |
逻辑表达式 |
最终得分 |
20 |
用户昵称 |
金龙王 |
运行时间 |
0.207 s |
代码语言 |
C++ |
内存使用 |
3.13 MiB |
提交时间 |
2022-10-29 16:41:04 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
string n;
int yd,hd,sheng;
bool yu(int a,int b){
if(!a){
yd++;
return false;
}
if(!b) return false;
return true;
}
bool huo(int a,int b){
if(a){
hd++;
return true;
}
if(!b) return false;
return true;
}
int main(){
freopen("csp2022pj_expr.in","r",stdin);
freopen("csp2022pj_expr.out","w",stdout);
cin>>n;
sheng=-1;
for(int i=0;i<n.size();i++){
if(n[i]=='&'){
if(yu(n[i-1]-'0',n[i+1]-'0')) n[i+1]='1';
else n[i+1]='0';
}else if(n[i]=='|'){
if(sheng!=-1){
if(huo(sheng,n[i-1]-'0')) n[i-1]='1';
else n[i-1]='0';
}
if(i+2>=n.size()||n[i+2]=='|'){
if(huo(n[i-1]-'0',n[i+1]-'0')) n[i+1]='1';
else n[i+1]='0';
}else{
if(n[i-1]='1'){
hd++;
while(1){
i+=2;
if(i>=n.size()){
n[n.size()-1]='1';
i=n.size()-1;
break;
}
if(n[i]=='|'){
n[--i]='1';
break;
}
}
}else{
sheng=n[i-1]-'0';
}
}
}
}
cout<<n[n.size()-1]-'0'<<endl<<yd<<" "<<hd<<endl;
return 0;
}