E Wrong Answer

  • 注意到 \(n\geq 2\) 时才可能有解,可以按如下方式构造一个 \(a_{1,2\dots 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;
}

相关文章:

  • 2022-12-23
  • 2021-09-07
  • 2022-03-10
  • 2021-07-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-28
猜你喜欢
  • 2021-07-22
  • 2022-12-23
  • 2021-08-24
  • 2021-11-29
  • 2022-12-23
  • 2021-06-17
相关资源
相似解决方案