poj1657

    技术2025-06-20  7

    // nouse1.cpp : Defines the entry point for the console application.//

    #include "stdafx.h"#include <stdio.h>#include <string.h>#include <math.h>

    void main(){ int t; int i; int king=63; int queen=63; int rook=63; int bishop=63; char src[2],dest[2];

     scanf("%d",&t);

     for(i=0;i<t;i++) {  scanf("%s",src);  scanf("%s",dest);

      if(strcmp(src,dest) == 0)  {   printf("0 0 0 0/n");  }  else  {  if(src[0]-dest[0] ==0)   king = abs(src[1]-dest[1]);  else if(src[1]-dest[1] == 0)   king = abs(src[0]-src[0]);  else  {   if(abs(src[0]-dest[0]) < abs(src[1]-dest[1]))  //王的步数为:max(x, y) !!    king = abs(src[1]-dest[1]);   else    king = abs(src[0]-dest[0]);  }

      if( (src[0]-dest[0] ==0) || (src[1]-dest[1] == 0)   || ( abs(src[0]-dest[0]) == abs(src[1]-dest[1])))   queen = 1;  else   queen = 2;

      if((src[0]-dest[0] ==0) || (src[1]-dest[1] == 0))   rook = 1;  else   rook = 2;

      if( abs(src[0]-dest[0])%2 == 0 && abs(src[1]-dest[1])%2 == 1)   bishop = 63;  else if(abs(src[0]-dest[0])%2 == 1 && abs(src[1]-dest[1])%2 == 0)   bishop = 63;  else if( abs(src[0]-dest[0]) == abs(src[1]-dest[1]))   bishop = 1;  else   bishop = 2;

      if(bishop == 63)   printf("%d %d %d Inf/n",king,queen,rook);  else   printf("%d %d %d %d/n",king,queen,rook,bishop);  } }

    }

     

    最新回复(0)