返回题解分享
讨论 / 题解分享/ 帖子详情

螺旋折线(编程题) - 题解

#include <bits/stdc++.h>
#define endl '\n'
typedef long long ll;
using namespace std;
//数据结构在这里定义
ll x,y;

void solve(){
	cin >> x >> y;
	if(x==0&&y==0){
		cout << "0" << endl;
		return;
	}
	ll n = max(abs(x), abs(y));
	//第一象限对角线的值有规律,以他做基准 
	ll res = 4*n*n;//(1,1)=4;(2,2)=16 
	ll dx = n - x; ll dy = n - y;
	//y=x右下方的点是从这个基准往后走的
	if(x>=y){
		cout << res + dx + dy;
	}else{
	//左上方的点是从基准往回走
		cout << res - dx - dy; 
	}
}

int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int t;//多组数据要cin
	//cin >> t;
	t = 1;
	while(t--){
		solve();
	} 
	return 0;//必须加return 0 
}
0 回复 0 转发 0 喜欢 5 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!