fork download
  1. import java.util.Scanner;
  2.  
  3. class ProblemB {
  4. public static void main(String[] args) {
  5. Scanner scanner = new Scanner(System.in);
  6. int testCases = scanner.nextInt();
  7. scanner.nextLine();
  8.  
  9. for (int i = 0; i < testCases; i++) {
  10. String positions = scanner.nextLine().trim();
  11. char startX = positions.charAt(0);
  12. int startY = positions.charAt(2) - '0';
  13. char endX = positions.charAt(4);
  14. int endY = positions.charAt(6) - '0';
  15.  
  16. int positionX = startX - 'A';
  17. int positionY = startY - 1;
  18. int targetX = endX - 'A';
  19. int targetY = endY - 1;
  20.  
  21. if ((positionX + positionY) % 2 != (targetX + targetY) % 2) {
  22. System.out.println("Impossible");
  23. continue;
  24. }
  25.  
  26. if (positionX == targetX && positionY == targetY) {
  27. System.out.println("0 " + startX + " " + startY);
  28. continue;
  29. }
  30.  
  31. if (Math.abs(positionX - targetX) == Math.abs(positionY - targetY)) {
  32. System.out.println("1 " + startX + " " + startY + " " + endX + " " + endY);
  33. continue;
  34. }
  35.  
  36. int midX = positionX + ((targetY - positionY) / 2);
  37. int midY = positionY + ((targetY - positionY) / 2);
  38. char midCharX = (char) (midX + 'A');
  39. int midCharY = midY + 1;
  40. System.out.println("2 " + startX + " " + startY + " " + midCharX + " " + midCharY + " " + endX + " " + endY);
  41. }
  42. scanner.close();
  43. }
  44. }
  45.  
Success #stdin #stdout 0.22s 60924KB
stdin
3
E 2 E 3
F 1 E 8
A 3 A 3

stdout
Impossible
2 F 1 I 4 E 8
0 A 3