题解 CF1428A 【Box is Pull】

解析

这是一道非常简单的题目。
我们可以直接根据样例得出答案。
一共有 \(2\) 种情况:

  • 起点和终点在同一行或列上
  • 起点和终点不在同一行或列上

第一种情况我们只需要算一下两点之间的距离。
第二种情况中间会拐一个弯,有多了两步。
所以:

\[Ans=abs(C-A)+abs(D-B)+((A!=C\&\&B!=D)?2:0) \]

代码

#include<bits/stdc++.h>
using namespace std;
int main(void)
{
	register int Case;
	cin>>Case;
	while(Case--)
	{
		register int A,B,C,D;
		cin>>A>>B>>C>>D;
		register int Ans;
		Ans=abs(C-A)+abs(D-B);
		if(A!=C&&B!=D)
		{
			Ans+=2;
		}
		cout<<Ans<<endl;
	}
	return 0;
}
posted @ 2020-10-18 09:44  Bushuai_Tang  阅读(144)  评论(0编辑  收藏  举报