记录编号 |
563941 |
评测结果 |
TTTTWWWWWWTTTTTTTTTT |
题目名称 |
[CSP 2020J]表达式 |
最终得分 |
0 |
用户昵称 |
*附加题* |
是否通过 |
未通过 |
代码语言 |
C++ |
运行时间 |
14.000 s |
提交时间 |
2021-09-19 10:36:43 |
内存使用 |
5.79 MiB |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
char aa[10];
int lbw(int qqq)
{
qqq--;
if(qqq<0)
return 0;
int ttt=1;
for(int i=1;i<=qqq;i++)
ttt=ttt*10;
return ttt;
}
int nm[1010000];// |-->-1 &-->-2 !-->-3
int bl[99999]={};
int qaq[99999]={};
int zhan[99999]={};
int main(){
freopen("csp2020pj_expr.in","r",stdin);
freopen("csp2020pj_expr.out","w",stdout);
int kkk;
while(cin>>aa)
{
if(aa[0]=='x')
{
kkk=strlen(aa)-1;
nm[nm[0]]=(aa[1]-'0')*lbw(kkk)+(aa[2]-'0')*lbw(kkk-1)+(aa[3]-'0')*lbw(kkk-2)+(aa[4]-'0')*lbw(kkk-3)+(aa[5]-'0')*lbw(kkk-4);
}
if(aa[0]=='|')nm[nm[0]]=-1;
if(aa[0]=='&')nm[nm[0]]=-2;
if(aa[0]=='!')nm[nm[0]]=-3;
if(aa[0]=='1'||aa[0]=='2'||aa[0]=='3'||aa[0]=='4'||aa[0]=='5'||aa[0]=='6'||aa[0]=='7'||aa[0]=='8'||aa[0]=='9')
{
kkk=strlen(aa);
bl[0]=(aa[0]-'0')*lbw(kkk)+(aa[1]-'0')*lbw(kkk-1)+(aa[2]-'0')*lbw(kkk-2)+(aa[3]-'0')*lbw(kkk-3)+(aa[4]-'0')*lbw(kkk-4);
break;
}
nm[0]++;
}
nm[0]--;
for(int i=1;i<=bl[0];i++)
cin>>bl[i];
int cs;
int qwq;
cin>>cs;
for(int i=1;i<=cs;i++)
{zhan[0]=0;
cin>>qwq;
for(int i=1;i<=bl[0];i++)
qaq[i]=bl[i];
qaq[qwq]=qaq[qwq]*-1+1;
for(int i=1;i<=nm[0];i++)
{
if(nm[i]>0)
{
zhan[0]++;
zhan[zhan[0]]=qaq[nm[i]];
}
if(nm[i]==-1)
{
if(zhan[zhan[0]]+zhan[zhan[0]-1]>0)
{
zhan[zhan[0]]=0;
zhan[0]--;
zhan[zhan[0]]=1;
}
else
{
zhan[zhan[0]]=0;
zhan[0]--;
zhan[zhan[0]]=0;
}
}
if(nm[i]==-2)
{
if(zhan[zhan[0]]+zhan[zhan[0]-1]==2)
{
zhan[zhan[0]]=0;
zhan[0]--;
zhan[zhan[0]]=1;
}
else
{
zhan[zhan[0]]=0;
zhan[0]--;
zhan[zhan[0]]=0;
}
}
if(nm[i]==-3)
{
zhan[zhan[0]]=zhan[zhan[0]]*-1+1;
}
}
cout<<zhan[1]<<endl;
}
}