U614650 expr

题目描述

小 D 最近在学习二元逻辑,他想知道如何对一个逻辑表达式求值。 具体而言,逻辑表达式是一个由 `(`、`)`、`!`、`&`、`|`、`^`、`->`、`0`、`1` 组成的字符串。其中 `!`、`&`、`|`、`^` 和 `->` 分别表示非、与、或、异或和蕴含。 或许你并不熟悉这些运算,这里我们给出每种运算的真值表: | `p` | `!p` | | :-: | :--: | | $0$ | $1$ | | $1$ | $0$ | | `p` | `q` | `p&q` | `p\|q` | `p^q` | `p->q` | | :-: | :-: | :---: | :----: | :---: | :----: | | $0$ | $0$ | $0$ | $0$ | $0$ | $1$ | | $0$ | $1$ | $0$ | $1$ | $1$ | $1$ | | $1$ | $0$ | $0$ | $1$ | $1$ | $0$ | | $1$ | $1$ | $1$ | $1$ | $0$ | $1$ | 小 D 定义“合法的逻辑表达式”为满足如下条件的表达式: 1. `0` 和 `1` 是合法的逻辑表达式,其值为其本身。 1. 若 `A` 和 `B` 分别是两个合法的逻辑表达式,则 `(A&B)`、`(A|B)`、`(A^B)` 和 `(A->B)` 都是合法的逻辑表达式,其值为将 `A` 和 `B` 的值做对应逻辑运算的结果。 1. 若 `A` 是合法的逻辑表达式,则 `(!A)` 是合法的逻辑表达式,其值为 `A` 的值取反后的结果。 现在,小 D 遇到了一个合法的逻辑表达式,但是他不会对这个表达式求值,于是只能求你帮忙。

输入格式

第一行一个整数 $T$,表示数据的组数。 接下来 $T$ 行,每行给出一个长度为 $n$ 的字符串。

输出格式

输出 $T$ 行。 每行输出一个字符 `0` 或 `1`,表示该组数据的答案。

说明/提示

#### 数据范围 对于全部测试点:$1\le T\le 10^3$,$1\le n\le 10^6$,保证单个测试点内所有测试用例 $n$ 的总和不超过 $10^6$。 | 测试点编号 | $n$ | 特殊性质 A | 特殊性质 B | | :---------: | :--------: | :--------: | :--------: | | $1\sim 8$ | $\le 10^3$ | 是 | 是 | | $9\sim 12$ | $\le 10^6$ | 是 | 是 | | $13\sim 16$ | $\le 10^6$ | 是 | 否 | | $17\sim 20$ | $\le 10^6$ | 否 | 是 | 特殊性质 A:字符串中不存在 `!`。 特殊性质 B:字符串中不存在 `->`。