AT_xmascon16_a.Array Sum
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
うさぎ准备了一个长度为 N 的整数序列 a={a0,a1,...,aN−1}。
你可以向うさぎ提出如下类型的问题:
- 选择一组 l,r (0≤l<r≤N),使得 r−l 是 2 的幂(即 1,2,4,8,…),然后询问数列 a 的区间 [l,r) 的和,也就是 (al+al+1+…+ar−1)。
请用尽可能少的询问次数,确定数列 a 中所有数的总和。
输入格式
- 首先,输入一个整数 N,表示数列的长度。
- 接下来,你的程序可以在不超过时间限制的情况下进行任意多次询问。
- 每次询问时,输出一行,内容为
?和两个整数 l,r,用空格分隔。- l,r 必须满足题目中的条件。
- 随后,输入会给出数列 a 的区间 [l,r) 的和。
- 每次询问时,输出一行,内容为
- 最后,输出一行,内容为
!和数列 a 的总和,用空格分隔。
请参考输入输出示例。
输出格式
(本题无额外输出格式说明,详见输入格式。)
说明/提示
限制
- 1≤N≤105。
- 0≤ai≤104。
评分
- 对于所有测试用例中,询问次数最多的那个用例,设其次数为 x,你的得分为 900/max(x,9) 的整数部分。
- 但如果有任何一个用例答案错误,则得分为 0。
注意事项
输出答案后,你的程序必须立即结束。如果没有立即结束,评测结果将不可预期。如果输出不正确,评测结果也不可预期(不一定是 WA)。
如果你的程序正确输出答案并结束,则视为正确。
注意,输出后必须刷新输出缓冲区,否则可能会因超时(TLE)而失败。
各语言的输入输出方法可参考 AtCoder 以往题目(链接: ABC 019 D: 高桥くんと木の直径)。
输入输出示例
以 N=7,a={1,2,3,4,5,6,7} 为例,给出输入输出示例。
| 输入 | 输出 | 说明 |
|---|---|---|
| 7 | 给出数列长度 N。 | |
| ? 0 1 | 询问区间 [0,1) 的和。 | |
| 1 | 回答为 1。 | |
| ? 0 4 | 询问区间 [0,4) 的和。 | |
| 10 | 回答为 10。 | |
| ? 1 3 | 询问区间 [1,3) 的和。 | |
| 5 | 回答为 5。 | |
| ? 3 7 | 询问区间 [3,7) 的和。 | |
| 22 | 回答为 22。 | |
| ! 28 | 输出答案 28。 |
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?