#P2566. Bound Found
Bound Found
中文题面:
描述
美国宇航局(目前似乎正处于叛逆期:"我就要用英尺,不要米!")接收并数字化了一系列大概率来自地外文明的信号。
每个信号由两部分组成:一个包含个整数值的序列和一个非负整数。
具体细节暂不赘述,但研究人员发现,每个信号实际编码了两个整数值,这两个值对应序列中某个连续子序列的和的绝对值最接近时的子序列起始和结束位置。
输入要给定一个包含个整数的序列和一个非负目标值。
输出要找出一个非空连续子序列(即序列的连续子区间),输出其起始索引和结束索引。
要求该子序列(从第个元素到第个元素,包含两端)的绝对和值与的接近程度不劣于任何其他非空连续子序列的绝对和值与的接近程度。
连续子序列(continuous subsequence)指序列中相邻元素的连续区间,例如序列中的。
"绝对和值最接近"的数学含义为:在所有可能的非空子序列中,满足与的差值最小。
若存在多个满足条件的子序列,通常需输出索引范围最小的(或根据题目隐含规则选择首个出现的解)。
输入
输入文件包含多个测试用例。每个测试用例以两个整数和开头。
输入以结束,其余情况下满足 。
接下来是构成序列的个整数(每个数的绝对值不超过),随后是个针对该序列的查询。
每个查询给出一个目标值,满足 。
输出
对于每个查询,输出一行三个数:某个最接近的绝对和值,以及该和值对应的子区间的起始索引和结束索引。
索引从开始,最大为。
关键点说明
输入以结束,程序需正确处理这一终止条件。
输出中的“某个最接近的绝对和值”意味着可能存在多个子区间满足条件,输出任意一个合法解即可。
索引从开始计数,例如序列 的完整索引范围为。
输入数据1
5 1
-10 -5 0 5 10
3
10 2
-9 8 -7 6 -5 4 -3 2 -1 0
5 11
15 2
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
15 100
0 0
输出数据1
5 4 4
5 2 8
9 1 1
15 1 15
15 1 15
来源
ACM国际大学生程序设计竞赛(ACM-ICPC) 德国乌尔姆大学分站赛