首先 s \geq 2n 的时候,显然可以构造一个 \{2, 2, 2, \cdots, s - 2n + 2\} 的序列,因为 s \geq 2n,所以 s -2n + 2 \geq 2。取 k = 1,一定凑不出来。
而 s \lt 2n 的时候,可以通过手玩几组发现无解。我们来尝试证明这个结论。
反证法,假设当 s \lt 2n 时,存在一个整数 k 和一个和为 s 序列 a,满足 a 不存在和为 k 或 (s - k) 的子列。
考虑对于序列 a,做出其前缀和数组 b。对于每一个 b_i,我们标记所有值为 b_i + ts 的整数,其中 t 是满足 0 \leq t \lt 2k 的整数,另外标记整数 0。则对于任意正整数 x,x 与 x + k 不能被同时标记(否则考虑设 u \equiv x \pmod s,v \equiv x + k \pmod s,则 u 和 v 是标记 x 和 x + k 的数。而 v - u \equiv x + k - x \equiv k \pmod s。换句话说,如果 v 在 b 中的对应位置在 u 后面,则 v - u = k,存在和为 k 的子列,否则 u - v = s - k,存在和为 s - k 的子列,与假设不符)。