暴力打表
#include "stdio.h"
#include "string.h"
bool hash[3020000];
int a[500010];
int main()
{
int i,x,n;
memset(hash,true,sizeof(hash));
a[0]=0;
a[1]=1;
hash[0]=false; hash[1]=false;
for (i=2;i<=500000;i++)
{
x=a[i-1]-i;
if (x<0 || hash[x]==false)
{
x=a[i-1]+i;
a[i]=x;
}
else
a[i]=x;
hash[x]=false;
}
while (scanf("%d",&n)!=EOF)
{
if (n<0) break;
printf("%d\n",a[n]);
}
return 0;
}