[最后一组数据](https://www.luogu.com.cn/paste/ypu5m8vp)
by cjlak1o1 @ 2022-08-18 10:44:23
@[cjlak1o1](/user/557385)
true or false它输出false
by sunxiaoli @ 2022-08-18 11:05:05
```cpp
#include<bits/stdc++.h>
using namespace std;
string s[100];
int n=1;
void f(int k)
{
for(int i=k;i<n;i++)
s[i]=s[i+1];
s[n]="";
}
int main()
{
while(cin>>s[n]) n++;
n--;
//cout<<n;
if(s[1]=="and"||s[1]=="or"||s[n]=="and"||s[n]=="or"||s[n]=="not")
return cout<<"error"<<endl,0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<i;j++)
if(s[j]=="not")
{
i=j;
break;
}
if(s[i]=="not")
{
for(int j=i+1;j<=n;j++)
{
if(s[j]=="true")
{
s[j]="false";
s[i]="";
f(i);
break;
}
else
if(s[j]=="false")
{
s[j]="true";
s[i]="";
f(i);
break;
}
else
if(s[j]=="not")
{
s[j]=s[i]="";
f(j);
f(i);
/*for(int k=1;k<=n;k++)
cout<<s[k]<<" ";
cout<<endl;*/
break;
}
else
return cout<<"error"<<endl,0;
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<i;j++)
if(s[j]=="and")
{
i=j;
break;
}
if(s[i]=="and")
{
if(s[i-1]=="true")
{
if(s[i+1]=="true")
{
s[i-1]=s[i]="";
s[i+1]="true";
f(i-1);
f(i-1);
}
else
if(s[i+1]=="false")
{
s[i-1]=s[i]="";
s[i+1]="false";
f(i-1);
f(i-1);
// cout<<s[i-1]<<endl;
}
else
return cout<<"error"<<endl,0;
}
else
if(s[i-1]=="false")
{
if(s[i+1]=="true"||s[i+1]=="false")
{
s[i-1]=s[i]="";
s[i+1]="false";
f(i-1);
f(i-1);
}
else
return cout<<"error"<<endl,0;
}
else
return cout<<"error"<<endl,0;
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<i;j++)
if(s[j]=="or")
{
i=j;
break;
}
if(s[i]=="or")
{
if(s[i-1]=="true")
{
if(s[i+1]=="true")
{
s[i-1]=s[i]="";
s[i+1]="true";
f(i-1);
f(i-1);
}
else
if(s[i+1]=="false")
{
s[i-1]=s[i]="";
s[i+1]="true";
f(i-1);
f(i-1);
}
else
return cout<<"error"<<endl,0;
}
else
if(s[i-1]=="false")
{
if(s[i+1]=="true")
{
s[i-1]=s[i]="";
s[i+1]="true";
f(i-1);
f(i-1);
}
else
if(s[i+1]=="false")
{
s[i-1]=s[i]="";
s[i+1]="false";
f(i-1);
f(i-1);
}
else
return cout<<"error"<<endl,0;
}
else
return cout<<"error"<<endl,0;
}
}
//for(int i=1;i<=n;i++) cout<<s[i]<<" ";
map<string,int> m;
for(int i=1;i<=n;i++)
m[s[i]]++;
if(m.empty())
return cout<<"error"<<endl,0;
if(m["true"]>1||m["false"]>1||(m["true"]>=1&&m["false"]>=1))
return cout<<"error"<<endl,0;
if(m["true"]==1)
cout<<"true";
else
cout<<"false";
return 0;
}
```
by cjlak1o1 @ 2022-08-18 11:18:20
调完了,AC代码
by cjlak1o1 @ 2022-08-18 11:18:45
@[bbbzzx](/user/372498) 您计算 or 的时候少了一个else
by cjlak1o1 @ 2022-08-18 11:19:43
@[bbbzzx](/user/372498) 什么玄学问题,不做了,用Python做好了
by sunxiaoli @ 2022-08-18 11:25:00