通過理解題意,我們發現:
當需要拐彎的時候,兔子需要先走回箱子的位置,再走向拐彎的方向。則拐彎操作的花費為 \(2\) 。而直行的操作花費為 \(1\) 。
所以,
如果不需要拐彎,也就是 \(x1=x2\) 或 \(y1=y2\) 時,直接計算花費。
如果需要拐彎,也就是 \(x1\neq x2\) 且 \(y1\neq y2\) 時,計算花費後再加2。
//AC程式碼
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int sx,sy,nx,ny,T,ans;
int main()
{
scanf("%d",&T);
while(T--){
scanf("%d%d%d%d",&sx,&sy,&nx,&ny);
if(sx!=nx&&sy!=ny){
ans=abs(nx-sx)+abs(ny-sy)+2;
}
else ans=abs(nx-sx)+abs(ny-sy);
printf("%d\n",ans);
}
return 0;
}