题目概述
你刚开始在
0
,第
解题报告
刚开始的想法是先跳到最接近
x
,然后一步一步迂回跳(一下往左一下往右)到
这显然是错的……我们看 8 :
−1+2+3+4=8
所以我们可以通过改变前面某一步的方向使得跳过头的方案跳回 x 。
假设跳过头到了
示例程序
#include<cstdio>
using namespace std;
int n,p,ans;
int main()
{
freopen("program.in","r",stdin);
freopen("program.out","w",stdout);
scanf("%d",&n);if (n<0) n=-n;
while (p<n||(p-n&1)) ans++,p+=ans;
return printf("%d\n",ans),0;
}