poj3295 http://poj.org/problem?id=3295
// :
//5 ( 0||1) 32
//
//k->x&&y
//A->x||y
//N->!x
//implies->(!x)||y
//E->x==y;
#include<iostream>
#include<string.h>
#include<stdio.h>
#include<stack>
using namespace std;
stack<int> tem;
string test;
char map[6];
int p,q,r,s,t;
int pp,qq,rr,ss,tt;
int judge(char ch)
{
switch(ch)
{
case 'p':
tem.push(pp);
return 1;
case 'q':
tem.push(qq);
return 1;
case 'r':
tem.push(rr);
return 1;
case 's':
tem.push(ss);
return 1;
case 't':
tem.push(tt);
return 1;
}
return 0;
}
void res(char ch)
{
int a,b;
switch(ch)
{
case 'K':
a=tem.top();
tem.pop();
b=tem.top();
tem.pop();
tem.push(a&&b);
break;
case 'A':
a=tem.top();
tem.pop();
b=tem.top();
tem.pop();
tem.push(a||b);
break;
case 'N':
a=tem.top();
tem.pop();
tem.push(!a);
break;
case 'C':
a=tem.top();
tem.pop();
b=tem.top();
tem.pop();
tem.push((!a)||b);
break;
case 'E':
a=tem.top();
tem.pop();
b=tem.top();
tem.pop();
tem.push(a==b);
break;
}
}
int main()
{
int flag;
while(getline(cin,test))
{
if(test[0]=='0') break;
flag=1;
p=q=r=s=t=1;
for(int i=0;i<5;i++)
map[i]=0;
for(int i=0; i<test.size(); i++)
{
if(test[i]=='p'&&p)
{
map[0]=1;
p=0;
}
else if(test[i]=='q'&&q)
{
map[1]=1;
q=0;
}
else if(test[i]=='r'&&r)
{
map[2]=1;
r=0;
}
else if(test[i]=='s'&&s)
{
map[3]=1;
s=0;
}
else if(test[i]=='t'&&t)
{
map[4]=1;
t=0;
}
}
// printf("%d %d %d %d
",q,r,s,t);
for( pp=p; pp<=1&&flag!=-1; pp++)
for( qq=q; qq<=1&&flag!=-1; qq++)
for( rr=r; rr<=1&&flag!=-1; rr++)
for( ss=s; ss<=1&&flag!=-1; ss++)
for( tt=t; tt<=1&&flag!=-1; tt++)
{
// printf("fsdf
");
for(int i=test.size()-1; i>=0&&flag!=-1; i--)
{
if(!judge(test[i]))
res(test[i]);
}
// printf("tem=%d
",tem.top());
flag=tem.top()-1;
// printf("flag=%d
",flag);
tem.pop();
}
if(flag!=-1)
printf("tautology
");
else
printf("not
");
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.