#P606. 逻辑求值

逻辑求值

题目描述

逻辑表达式的定义如下:

  • 单个 truefalse 都是逻辑表达式;
  • 如果 ST 是逻辑表达式,那么 S and T 也是逻辑表达式;
  • 如果 ST 是逻辑表达式,那么 S or T 也是逻辑表达式。

对逻辑表达式求值前,需要确定 andor 运算的优先级:

  • 若规定先算 and 再算 or,则以下表达式的值为
  true or false and false or false
          ~~~~~~~~~~~~~~~   
= true or false or false
= true

定义这种计算顺序为合取优先

  • 若规定先算 or 再算 and,则以下表达式的值为
  true or false and false or false
  ~~~~~~~~~~~~~     ~~~~~~~~~~~~~~
= true and false
= false

定义这种计算顺序为析取优先

给定一个逻辑表达式,请分别求出合取优先析取优先规定下的计算结果。

输入格式

一串字符序列:表示给定的逻辑表达式,保证输入数据是一个合法的逻辑表达式。

输出格式

  • 第一行:表示在合取优先规定下逻辑表达式的值。
  • 第二行:表示在析取优先规定下逻辑表达式的值。
true or false and false or false
true
false

数据范围

nn 表示输入字符序列的总长度,

  • 对于 50%50\% 的数据,1n10001\leq n\leq 1000
  • 对于 100%100\% 的数据,1n1,000,0001\leq n\leq 1,000,000