既然 $ n \leq 2000$ 那我们就假使所有的 $n = 2000 $ 主要是为了方便。再使 \(x = \sum_{i=1} ^ {1999}\) 以及 $a_1=a_2=a_3=...=a_{1998}=0 \(,\)a_{1999}=-d\(,\)a_{2000}=x+d$。
正确答案就应该是\(2000x\),而爱丽丝答案为\(x+d\),两个答案的差值为\(2000x-x+d\),所以\(1999x=k+d\),\(x=\frac{k+d}{1999}\),则d = 1999 - k % 1999。
#include<bits/stdc++.h>
using namespace std;
int k, a;
int main() {
scanf("%d", &k);a = 2000 - k % 2000 + 998000;
printf("2000\n");
for (int i = 1; i <= 1998; i ++) printf("0 ");
printf("%d %d\n", -a + (k + a) / 2000, a);
return 0;
}