题解 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;
}
不要妄图追上西坠的太阳,而是要在黎明前就等着它!