4633540_ac_141ms_216k.cpp
来自「部分PKU上的源码」· C++ 代码 · 共 50 行
CPP
50 行
#include<iostream>
#include<string>
using namespace std;
bool p,q,r,s,t;
int now;
bool check(string ss)
{
now++;
bool w,x,result;
switch(ss[now])
{
case 'p':result=p;break;
case 'q':result=q;break;
case 'r':result= r;break;
case 's':result= s;break;
case 't':result= t;break;
case 'K':w=check(ss);x=check(ss);result=w&&x;break;
case 'A':w=check(ss);x=check(ss);result=w||x;break;
case 'N':result=!check(ss);break;
case 'C':w=check(ss);x=check(ss);
if(w&&!x) result= false;
else result= true;break;
case 'E':w=check(ss);x=check(ss);result=(w==x);break;
}
return result;
}
int main()
{
string ss;
while(cin>>ss)
{
if(ss[0]=='0') return 0;
bool can=true;
for(int count=0;count<=32;count++)
{
now=-1;
p=bool(count/16);
q=bool(count/8%2);
r=bool(count/4%2);
s=bool(count/2%2);
t=bool(count%2);
if(!check(ss)) {can=false;break;}
}
if(can) cout<<"tautology"<<endl;
else cout<<"not"<<endl;
ss.erase();
}
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?