#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int abs(int x) {return x<0?-x:x;}
int main()
{
int r1,c1,r2,c2,x11,x12,x21,x22,a,b,c;
cin>>r1>>c1>>r2>>c2;
x11=r1+c1,x21=r2+c2;
x12=r1-c1,x22=r2-c2;
if(c1==c2||r1==r2) a=1; else a=2;
if(x11==x21||x12==x22) b=1;
else if(abs(x21-x11)&1||abs(x22-x12)&1) b=0; else b=2;
int sa=abs(r1-r2),sb=abs(c1-c2);
c=max(sa,sb);
cout<<a<<" "<<b<<" "<<c<<endl;
return 0;
}
CodeForces 370A Rook, Bishop and King
最新推荐文章于 2021-08-20 13:50:07 发布
本文探讨了在一个标准的8x8国际象棋棋盘上,如何计算从一个指定位置移动到另一个指定位置时,车、象和王所需的最少移动次数。通过简单的逻辑判断和数学运算,提供了一个有效的方法来解决这个问题。

474

被折叠的 条评论
为什么被折叠?



