logo AlgoBeat OnlineJudge
登录 注册

#216696. [SEATST 2026] 三重电路 / Triple Circuit

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

这是一道提交答案题(output-only)。

你在为机器人实现电路时,你注意到了一些异常。机器人可能运行 个程序,编号从 。正常情况下,在任何给定时刻,应该 只有 一个程序(在 个程序中)在运行。然而,由于某些未知原因,有时恰好有三个程序同时运行。幸运的是,作为一名经验丰富的程序员,你知道如何处理这种情况,并决定实现一个电路来 检测 这些异常。

你首先创建 个输入。如果第 个程序没有运行,则第 个输入为 ,否则为 。然后,你在电路中添加强逻辑门,它们的索引从 开始连续编号。每个逻辑门可以接受给定数量的输入并产生一个输出,输出为 。第 个逻辑门的输入可以是索引小于 的任何逻辑门的输出,或者是初始 个输入中的任意一个。

有三种类型的逻辑门:

  • NOT :恰好接受一个输入。如果输入为 ,则输出为 ,否则输出为
  • OR :恰好接受两个输入。如果两个输入均为 ,则输出为 ,否则输出为
  • AND :恰好接受两个输入。如果两个输入均为 ,则输出为 ,否则输出为

如果检测到异常——也就是说,前 个输入中恰好有三个为 ——最后一个逻辑门的输出应该是 ;如果前 个输入中恰好有一个为 ,则输出应该为

保证前 个输入中 的数量要么恰好是一个,要么恰好是三个。

输出格式

你需要将描述 电路的信息写入输出文件中(output file)。

输出的第一行应包含一个整数,表示使用的逻辑门数量。

输出中其余的每一行应为以下三种格式之一:

NOT in_1
OR in_1 in_2
AND in_1 in_2

它们分别追加一个 NOTORAND 门。对于 NOTin_1 是该逻辑门输入的索引。对于 ORANDin_1in_2 是该逻辑门输入的索引。在第一行后的第 行追加的逻辑门索引为

逻辑门的总数不应超过 。换句话说,输出文件中的行数不应超过

数据范围与提示

样例

考虑一个简化版本的任务, (注意,你只需要提供 的解决方案)。一种可能的解决方案是构建以下电路。

3
OR 0 1
OR 2 3
AND 4 5

该电路包含:

  • 逻辑门 ,如果输入 中至少有一个为 ,则输出
  • 逻辑门 ,如果输入 中至少有一个为 ,则输出 ;以及
  • 逻辑门 ,如果逻辑门 和逻辑门 的输出均为 ,则输出

可以验证,对于所有可能的输入,该电路都能给出正确的答案。

子任务

  • ( 分) 没有额外约束。

评分方式

对于每个子任务,如果存在电路无法通过的情况(也就是说你所设计的电路无法成功检查出异样),你的得分将为

否则,令 表示电路使用的逻辑门数量。你的得分将是 ,其中: