SP406 LOGIC - Logic
题目描述
我们有一个 $10 \times 10$ 的网格,每个格子里可以包含五种逻辑运算之一(AND、OR、NOT、Input、Output)。这些运算可以组合在一起构成一个完整的逻辑电路。给定电路的描述和若干布尔值,你需要构建这个逻辑电路,并用它处理输入流。
输入格式
第一行是一个整数 $n$,表示需要处理的电路数量。接下来的内容由 $n$ 组电路描述和测试值组成。
每个电路由多个操作构成。每行的开头有三个字符,表示该操作所在单元格的坐标:纵轴上的 $0-9$ 和横轴上的 $0-9$,然后是一个字符表示该单元格的操作(`&` 代表 AND,`|` 代表 OR,`!` 代表 NOT,`i` 代表 Input,`o` 代表 Output)。在这三个字符后,可以选择性地跟随一组坐标对,表示此单元格的输出要作为其它单元格的输入。这组坐标可以为空,并以 `..` 结束。整个操作列表最终会以一行 `end` 结束。
接下来是每个电路的一组测试值。第一行有一个整数 $t$,表示需要运行的测试用例的数量。接下来的 $t$ 行中,每行是由 `0` 和 `1` 组成的序列,象征每个测试用例的输入值。输入的数量与电路描述中定义的输入数量一致。输入值应当按照电路描述中定义的输入顺序进行匹配。
如果还有下一个电路描述,将继续读取。
输出格式
对于每个电路,你的程序应该为每个测试用例输出一行。每行包含一个 `0` 或 `1`,表示电路描述中按照定义顺序的输出结果。
每组测试用例结束后,输出一个空行以作区分。
**本翻译由 AI 自动生成**