fork download
  1. import java.util.Scanner;
  2.  
  3. public class Main {
  4. public static void main(String[] args) {
  5. int t;
  6. t = sc.nextInt();
  7. for (; 0 < t; t--) {
  8. int iloscPunktow = sc.nextInt();
  9. String[] nazwaTab = new String[iloscPunktow];
  10. int[] xTab = new int[iloscPunktow];
  11. int[] yTab = new int[iloscPunktow];
  12. for (int i = 0; i < iloscPunktow; i++) {
  13. String nazwa = sc.next();
  14. int x = sc.nextInt();
  15. int y = sc.nextInt();
  16. nazwaTab[i] = nazwa;
  17. xTab[i] = x;
  18. yTab[i] = y;
  19. }
  20. sortJeden(nazwaTab, xTab, yTab);
  21. }
  22. }
  23.  
  24. private static void sortJeden(String[] nazwa, int[] punktX, int[] punktY) {
  25. int tempX;
  26. int tempY;
  27. String tempNazwa;
  28. int zmiana = 1;
  29. while (zmiana > 0) {
  30. zmiana = 0;
  31. for (int j = 0; j < nazwa.length - 1; j++) {
  32. if (Math.abs(punktX[j]) > Math.abs(punktX[j + 1])) {
  33. tempX = punktX[j + 1];
  34. punktX[j + 1] = punktX[j];
  35. punktX[j] = tempX;
  36. tempY = punktY[j + 1];
  37. punktY[j + 1] = punktY[j];
  38. punktY[j] = tempY;
  39. tempNazwa = nazwa[j + 1];
  40. nazwa[j + 1] = nazwa[j];
  41. nazwa[j] = tempNazwa;
  42. zmiana++;
  43. }
  44. else if (Math.abs(punktX[j]) == Math.abs(punktX[j + 1])) {
  45. if (Math.abs(punktY[j]) > Math.abs(punktY[j + 1])) {
  46. tempX = punktX[j + 1];
  47. punktX[j + 1] = punktX[j];
  48. punktX[j] = tempX;
  49. tempY = punktY[j + 1];
  50. punktY[j + 1] = punktY[j];
  51. punktY[j] = tempY;
  52. tempNazwa = nazwa[j + 1];
  53. nazwa[j + 1] = nazwa[j];
  54. nazwa[j] = tempNazwa;
  55. zmiana++;
  56. }
  57. }
  58. }
  59. }
  60.  
  61. for (int k = 0; k < nazwa.length; k++) {
  62. System.out.println(nazwa[k] + " " + punktX[k] + " " + punktY[k]);
  63. }
  64. System.out.println();
  65. }
  66.  
  67. private static Scanner sc = new Scanner(System.in);
  68. }
  69.  
Success #stdin #stdout 0.08s 2184192KB
stdin
8
3
A 0 0
C 5 5
B 1 -1

1 
X 1 1

2
A 1 1
B 0 0

2
A 1 1
B 0 0

2
A 1 1
B 0 0

2
A 1 1
B 0 0

1
X 0 0

9
a 3 30
b 3 40
c 3 50
d 2 7
e 2 6
f 2 5
g 1 300
h 1 200 
i 1 100
stdout
A 0 0
B 1 -1
C 5 5

X 1 1

B 0 0
A 1 1

B 0 0
A 1 1

B 0 0
A 1 1

B 0 0
A 1 1

X 0 0

i 1 100
h 1 200
g 1 300
f 2 5
e 2 6
d 2 7
a 3 30
b 3 40
c 3 50