//简单的模拟题,需要对每一个走子的规则有一个全面而准确的模拟,很容易漏掉情况! #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"); }