比赛 2026初中综合小练习 评测结果 AAAAWWAWWWWWWWAAAWWW
题目名称 逻辑表达式 最终得分 40
用户昵称 cyk 运行时间 0.446 s
代码语言 C++ 内存使用 4.37 MiB
提交时间 2026-04-14 20:36:59
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
string s;
int main(){
    freopen("expr.in","r",stdin);
    freopen("expr.out","w",stdout);
    cin>>s;
    int len=s.size();
    int ans,a=-1,cnta=0,cnto=0;
    for(int i=0;i<len;i++){
        if(s[i]=='('||s[i]==')') continue;
        if((s[i]=='1'||s[i]=='0')&&a==-1){
            ans=s[i]-'0';
            a=1; 
        }
        if(s[i]=='&'){
            if(ans==0){
                cnta++;
            }else{
                if(s[i+1]=='('){
                    ans=ans&(s[i+2]-'0');
                }else{
                    ans=ans&(s[i+1]-'0');
                }
            }
        }else if(s[i]=='|'){
            if(ans==1){
                cnto++;
            }else{
                if(s[i+1]=='('){
                    ans=ans|(s[i+2]-'0');
                }else{
                    ans=ans|(s[i+1]-'0');
                }
                }
        }
    }
    cout<<ans<<endl<<cnta<<' '<<cnto;
    return 0;
}