标签:
Description
Input
Output
Sample Input
2 a1 c3 f5 f8
Sample Output
2 1 2 1 3 1 1 Inf
1 #include<cstdio> 2 #include<cmath> 3 #include<iostream> 4 using namespace std; 5 6 int main() { 7 int nCases; 8 cin >> nCases; 9 while(nCases--) { 10 char begin[5], end[5]; 11 scanf("%s %s", begin, end); 12 int x, y;//用x和y分别储存起止位置之间x方向和y方向上的距离 13 x = abs(begin[0] - end[0]); 14 y = abs(begin[1] - end[1]); 15 if(x == 0 && y == 0) printf("0 0 0 0\n"); 16 else { 17 if(x <= y) printf("%d", y);//王的步数 18 else printf("%d", x); 19 if(x==y || x==0 || y==0) //后的步数 20 printf(" 1"); 21 else printf(" 2"); 22 if(x == 0 || y == 0) printf(" 1"); //车的步数 23 else printf(" 2"); 24 if((x-y)%2 != 0) printf(" Inf\n");//象的步数 25 else if(x == y) printf(" 1\n"); 26 else printf(" 2\n"); 27 } 28 } 29 return 0; 30 }
难点在王的步数(其实也不难。。):
因为斜着走 横竖都+1,所以取大的就好。
poj 1657 Distance on Chessboard
标签:
原文地址:http://www.cnblogs.com/liangyongrui/p/4284430.html