分析
我们直接令 $n = 2000$,并在前面放 $1998$ 个 $0$,然后设 $1999$ 项为 $-d$ ,$2000$ 项为 $x+d$ 。
那么正确答案是 $2000x$ ,Alice 算出来的答案是 $x+d$ ,两者的差为 $1999x-d$ 。
那么 $1999x-d=k\Rightarrow x=\frac{k+d}{1999}$ 。随便找一组满足条件的 $x$ 和 $d$ 即可。
代码
// ===================================
// author: M_sea
// website: http://m-sea-blog.com/
// ===================================
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cmath>
#define re register
using namespace std;
inline int read() {
int X=0,w=1; char c=getchar();
while (c<'0'||c>'9') { if (c=='-') w=-1; c=getchar(); }
while (c>='0'&&c<='9') X=X*10+c-'0',c=getchar();
return X*w;
}
int main() {
int k=read(),d=1999-k%1999,x=(k+d)/1999;
puts("2000");
for (re int i=1;i<=1998;++i) printf("%d ",0);
printf("%d %d\n",-d,x+d);
return 0;
}