CF2135D1.From the Unknown (Easy Version)

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

这是该问题的简单版本。不同版本的区别在于,本版本中对于所有询问中所有文章长度之和没有限制。只有在你解决了该问题所有版本后,才能进行 hack。

这是一个交互式问题。

RiOI 团队最近开发了一款名为 RiOI Editor 的文本编辑器。该编辑器只包含一个整数参数 WW —— 每一行的宽度。已知 1≤W≤1051 \leq W \leq 10^5。

由于你无法理解 RiOI 语言,因此在你看来,不同的单词只在于其长度的不同。因此,一篇长度为 nn 的文章被定义为一个序列 aa,包含 nn 个正整数,aia_i 表示第 ii 个单词的长度。RiOI Editor 显示文章 [a1,a2,…,an][a_1, a_2, \ldots, a_n] 的方式如下:

  • 如果 max⁡(a1,a2,…,an)>W\max(a_1, a_2, \ldots, a_n) > W,编辑器无法显示该文章;
  • 否则,编辑器按如下流程显示该文章:
    • 初始时,l=1l = 1,s=0s = 0。在整个过程中,ll 总是表示编辑器当前的行数,ss 总是表示最后一行所有单词长度和;
    • 然后,对于每个 1≤i≤n1 \leq i \leq n:
      • 如果 s+ai≤Ws + a_i \leq W,则本单词插入当前行尾,ll 保持不变,ss 增加 aia_i;
      • 否则,本单词插入新的一行,ll 变为 l+1l+1,ss 变为 aia_i;
    • 显示该文章所需的行数即为最后 ll 的值。

你对该编辑器非常感兴趣,所以你决定通过向编辑器输入一些文章并观察显示所需的行数,从而推断出 WW 的值。

具体来说,你最多可以向评测机询问 22 次。每次,你输入一篇文章 [a1,a2,…,an][a_1, a_2, \ldots, a_n](1≤n≤1051 \leq n \leq 10^5),评测机会回应:

  • 如果编辑器能够显示该文章,则返回所需的行数;
  • 如果编辑器无法显示该文章,则返回 00。

输入格式

每组测试数据包含多个测试用例。第一行为测试用例组数 tt(1≤t≤101 \leq t \leq 10)。接下来是每组测试用例的描述。

输出格式

(无输出格式约定,请根据交互要求实现对应交互。)

输入输出样例

  • 输入#1

    2
    
    2
    
    1
    
    
    0

    输出#1

    ? 5 1 9 4 6 1
    
    ? 2 10 10
    
    ! 20
    ? 1 2
    
    ! 1

说明/提示

在第一个测试用例中:

  • 第一次询问,“单词总长度”为 1+9+4+6+1=211+9+4+6+1=21,文章被分为两行显示,因此 W<21W < 21;
  • 第二次询问,“单词总长度”为 10+10=2010+10=20,文章被一行显示,因此 W≥20W \geq 20。

由此,可以判断 W=20W=20。

在第二个测试用例中,编辑器无法显示唯一的那篇文章,因此 W<2W < 2,故 WW 只能为 11。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页