1 #include<iostream>
2 #include<cstring>
3 #include<cstdlib>
4 #include<cstdio>
5 #include<cmath>
6 #include<algorithm>
7 using namespace std;
8 int tx[10]={1,2,1,2,-1,-2,-1,-2};
9 int ty[10]={2,1,-2,-1,2,1,-2,-1};
10 int xp,yp,xs,ys;
11 int dis[105][105];
12 int q1[1005],q2[1005];
13 int bfs(int x,int y) {
14 memset(dis,-1,sizeof(dis));
15 int s=0,t=1;
16 q1[s]=x;q2[s]=y;
17 dis[x][y]=0;
18 while(s!=t) {
19 int nx=q1[s++],ny=q2[s-1];if(s==1000) s=0;
20 for(int i=0;i<8;i++) {
21 int tox=nx+tx[i],toy=ny+ty[i];
22 if(tox<0||toy<0||tox>60||toy>60||dis[tox][toy]!=-1) continue;
23 dis[tox][toy]=dis[nx][ny]+1;
24 q1[t]=tox,q2[t++]=toy;if(t==1000) t=0;
25 }
26 }
27 return dis[30][30];
28 }
29 int main() {
30 scanf("%d%d%d%d",&xp,&yp,&xs,&ys);
31 int x=abs(xp-xs),y=abs(yp-ys);
32 int cnt=0;
33 while(x+y>=30) {
34 if(x<y) swap(x,y);
35 if(x-4>=y*2) x-=4;
36 else x-=4,y-=2;
37 cnt+=2;
38 }
39 x+=30,y+=30;
40 printf("%d",cnt+bfs(x,y));
41 return 0;
42 }