U168623 最佳子段和[BDFZ2021新春公开赛T2]

题目描述

长度为 $n$ 的序列 $a[1...n]$ 和 $q$ 个询问,每次询问给一个整数 $k$ ,请你找出一个非空连续子段$[l,r]$,使其**子段和$a[l]+...+a[r]$ 最接近 $k$** 。 形式上:找出最佳子段和 $sum(l,r) = a[l]+...+a[r]$,令 $abs(sum(l,r)-k)$ 最小,输出这个最小值。

输入格式

第$1$行$2$个整数$n,q$,代表有$q$组询问。 第$2$行$n$个整数$a[i]$。 第$3$行$q$个整数代表每组询问的$k$。

输出格式

输出$q$行, 每行1个整数代表1组询问的答案。

说明/提示

对于 $100\%$ 的数据,保证 $1\le n\le 10^5, 1\le q\le 200, 1\le a[i],k\le 10^9$。 | 测试点 | $n$ | $q$ | | :----: | :--------: | ------- | | $1-2$ | $\le10$ | $=1$ | | $3-6$ | $\le2000$ | $