#HK4328. 「CEOI2013」宝藏
「CEOI2013」宝藏
题目描述
题目译自 CEOI2013 Day1 T1「Treasure」
在一次地震后,亚得里亚海中出现了一座新岛!除了一个不同寻常的设备外,这座岛屿大部分都是荒芜的。这个设备很快就被命名为「神谕」。虽然神谕没有附带说明书,但一支由考古学家和计算机专家组成的精英团队还是能够理解它的行为。
神谕提供了有关岛上宝藏位置的信息。这座岛屿被划分为一个由 行 列组成的网格,行和列均从 到 进行编号。网格中的某些单元格包含宝藏。神谕可以回答以下形式的问题:「给定网格中的一个矩形,矩形中有多少个单元格包含宝藏?」
虽然神谕可以回答所有大小矩形的问题,但发现信息请求越具体(矩形越小),神谕在回答时消耗的能量就越多。更准确地说,如果一个矩形包含 个单元格,那么神谕回答问题时将使用恰好 个能量单位。
编写一个程序,在能够与神谕交互的情况下,找到岛上所有包含宝藏的单元格的位置。我们想要让使用的能量越少越好。但是,你使用的能量不一定要是最少的,请参阅「评分」部分了解您的代码将如何评分。
交互方式
这是一个交互题。您的程序使用标准输出向神谕提问,并通过从标准输入读取来接收答案。
- 在程序开始时,它应该读取一个整数 ,即网格的大小。
- 为了向神谕提问,您的程序应该输出一行包含用空格分隔的四个整数 $(1 \leq R_1 \leq R_2 \leq N, 1 \leq C_1 \leq C_2 \leq N)$。如果条件不成立或格式不正确,您的程序将在该测试点上获得零分。
- 神谕将以一行包含一个整数的响应来回答,即所提供的矩形中包含宝藏的单元格数量。更准确地说,是满足 和 的这 行 列的单元格中有多少个格子包含宝藏。
- 当您的程序完成提问后,它应该在一行中输出
END。接下来它应该输出 行,每行包含一个由 个字符0或1组成的字符串。如果第 行第 列的单元格中有宝藏,则第 行中的第 个字符是1,否则为0。行从上到下编号为 到 ,列从左到右编号 到 。 一旦您的程序输出方案,您的程序应自动终止。 - 为了与交互器正确交互,您的程序需要在每个问题之后和写入方案之后刷新标准输出。
您可以假设,在每次测试点中,神谕将正确回答问题,并且宝藏的位置是在交互之前选择好的。换句话说,交互器不是自适应的,答案不会依赖于您的程序之前提出的问题。
样例
| 输出 | 输入 |
|---|---|
2 |
|
1 1 1 1 |
0 |
1 2 1 2 |
1 |
2 1 2 2 |
2 |
END |
|
01 |
|
11 |
评分
每个测试点价值 分。如果您的程序的输出不正确,您将在该测试点上获得零分。否则,授予您程序的分数取决于神谕使用的总能量单位 。更准确地说:
- 如果 ,您的得分为 分。
- 否则,如果 ,您的得分为 分。
- 否则,如果 ,您的得分为 分。
- 否则,如果 ,您的得分为 分。
- 否则,您的得分为 分。
此外,对于 的测试数据,。
即使您的程序没有提问,但是猜测出正确的解决方案,您的输出也将被视为正确。