E Wrong Answer
- 注意到 (ngeq 2) 时才可能有解,可以按如下方式构造一个 (a_{1,2dots n}):
- 令 (a_1=-1) ,而后面的数都为正.记 (s=sum_{i=2}^{n} a_i),显然题目中的程序给出的答案是 (s*(n-1)) .
- 为使这个答案比正确答案少 (k) ,那么正确答案只能是 ((s-1)*n).
[s(n-1)+k=(s-1)n\ s=k+n
]
- 由于我们可以放 (1) 个 (-1) , (1999) 个 (10^6),此时 (s-n=1999*10^6-2000>10^9) ,所以按照上述方法一定可以构造出一组解.
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mp make_pair
#define pii pair<int,int>
inline int read()
{
int x=0;
bool pos=1;
char ch=getchar();
for(;!isdigit(ch);ch=getchar())
if(ch=='-')
pos=0;
for(;isdigit(ch);ch=getchar())
x=x*10+ch-'0';
return pos?x:-x;
}
const int delta=1e6-1;
int ans[2019],n=0;
int main()
{
int k=read();
++k;
ans[++n]=-1;
while(k>=delta)
{
k-=delta;
ans[++n]=delta+1;
}
ans[++n]=k+1;
cout<<n<<endl;
for(int i=1;i<=n;++i)
cout<<ans[i]<<' ';
return 0;
}