//简单的模拟题,需要对每一个走子的规则有一个全面而准确的模拟,很容易漏掉情况!
#include <iostream>
#include <cmath>
#include <string>
using namespace std;
int main()
{
int tc, x, y;
string pos1, pos2;
cin >> tc;
while (tc--)
{
cin >> pos1 >> pos2;
x = abs(float((pos1[0]-48)-(pos2[0]-48)));
y = abs(float((pos1[1]-48)-(pos2[1]-48)));
if (x == 0 && y == 0)//当起始位置和终止位置一样的时候
cout << 0 << " " << 0 << " " << 0 << " " << 0 << endl;
else
{
//王的步数
if (x < y)
cout << y << " ";
else
cout << x << " ";
//后的步数
if (x == y || x == 0 || y == 0)
cout << 1 << " ";
else
cout << 2 << " ";
//车的步数
if (x == 0 || y == 0)
cout << 1 << " ";
else
cout << 2 << " ";
//象的步数
if (abs(x-y) % 2 != 0)
cout << "Inf" << endl;
else if (x == y)
cout << 1 << endl;
else
cout << 2 << endl;
}
}
system("pause");
}
poj 1657 Distance on Chessboard
最新推荐文章于 2019-07-29 12:50:54 发布