题目:
题目描述
如图所示的螺旋折线经过平面上所有整点恰好一次。
对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度。
例如dis(0, 1)=3, dis(-2, -1)=9
给出整点坐标(X, Y),你能计算出dis(X, Y)吗?
输入
X和Y
输出
输出dis(X, Y)
样例输入
0 1
样例输出
3
分析:
定点+线段平行;
AC代码:
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
#define ll long long
ll n,m,ma;
int main()
{scanf("%lld%lld",&n,&m);ll x=fabs(n);ll y=fabs(m);ma=max(x,y);ll ans=ma*ma*4;if(y==ma){if(m>0)ans=ans-ma+n;else ans=(ma-n)+2*ma+ans;}else if(x==ma){if(n>0)ans+=(ma-m);else ans=ans-2*ma-(ma-m);}printf("%lld\n",ans);
}