题目描述
思路
通过y=x,y=-x,y=x+1三条直线将折线划分为四个区域,寻找标志点写出公式
注意代表第几层的变量n要设置为long long,否则计算n方时会出错(我也不知道为啥,应该不影响的啊)
C++ 代码
#include<iostream>
#include<cstdio>
using namespace std;
int x,y;
long long n;
int main()
{
cin>>x>>y;
if(y>=-x)
{
n=max(x,y);
if(y>=x)
{
cout<<4*n*n-(n-x);
}
else
{
cout<<4*n*n+(n-y);
}
}
else
{
if(y>=x+1)
{
n=-x;
cout<<(2*n-1)*(2*n-1)+y+n-1;
}
else
{
n=-y+1;
cout<<(2*n-1)*(2*n-1)-(x+n);
}
}
}