fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6. import java.awt.Point;
  7.  
  8. /* Name of the class has to be "Main" only if the class is public. */
  9. class Ideone
  10. {
  11. static int[] xs = {30, 94, 158, 222, 286, 350, 414, 478, 542, 606, 670};
  12. static int[] ys = {30, 94, 158, 222, 286, 350, 414, 478, 542, 606, 670};
  13.  
  14. public static void main (String[] args) throws java.lang.Exception
  15. {
  16. Ideone.nearestGrid(299, 520);
  17. }
  18.  
  19. public static Point nearestGrid(int x, int y)
  20. {
  21. int diff = 9999999;
  22. int closestX = 0;
  23. for (int n = 0; n <= 10; n++)
  24. {
  25. if (x > xs[n])
  26. {
  27. if (diff > x-xs[n])
  28. {
  29. closestX = xs[n];
  30. diff = (x)-(xs[n]);
  31. }
  32. }
  33. if (x < xs[n])
  34. {
  35. if (diff > xs[n]-x)
  36. {
  37. closestX = xs[n];
  38. diff = (xs[n])-(x);
  39. }
  40. }
  41. if (x == xs[n])
  42. {
  43. closestX = xs[n];
  44. break;
  45. }
  46. System.out.println("n: " + n + " diff: " + diff + " closestX: " + closestX);
  47. }
  48. diff = 999999999;
  49. int closestY = 0;
  50. for (int n = 0; n <= 10; n++)
  51. {
  52. if (y > ys[n])
  53. {
  54. if (diff > y-ys[n])
  55. {
  56. closestY = ys[n];
  57. diff = y-ys[n];
  58. }
  59. }
  60. if (y < ys[n])
  61. {
  62. if (diff > ys[n]-y)
  63. {
  64. closestY = ys[n];
  65. diff = ys[n]-y;
  66. }
  67. }
  68. if (y == ys[n])
  69. {
  70. closestY = ys[n];
  71. break;
  72. }
  73. System.out.println("n: " + n + " diff: " + diff + " closestY: " + closestY);
  74. }
  75. Point p = new Point(closestX, closestY);
  76. return p;
  77. }
  78. }
Success #stdin #stdout 0.07s 380224KB
stdin
Standard input is empty
stdout
n: 0 diff: 269 closestX: 30
n: 1 diff: 205 closestX: 94
n: 2 diff: 141 closestX: 158
n: 3 diff: 77 closestX: 222
n: 4 diff: 13 closestX: 286
n: 5 diff: 13 closestX: 286
n: 6 diff: 13 closestX: 286
n: 7 diff: 13 closestX: 286
n: 8 diff: 13 closestX: 286
n: 9 diff: 13 closestX: 286
n: 10 diff: 13 closestX: 286
n: 0 diff: 490 closestY: 30
n: 1 diff: 426 closestY: 94
n: 2 diff: 362 closestY: 158
n: 3 diff: 298 closestY: 222
n: 4 diff: 234 closestY: 286
n: 5 diff: 170 closestY: 350
n: 6 diff: 106 closestY: 414
n: 7 diff: 42 closestY: 478
n: 8 diff: 22 closestY: 542
n: 9 diff: 22 closestY: 542
n: 10 diff: 22 closestY: 542