/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.awt.Point;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
static int[] xs = {30, 94, 158, 222, 286, 350, 414, 478, 542, 606, 670};
static int[] ys = {30, 94, 158, 222, 286, 350, 414, 478, 542, 606, 670};
{
Ideone.nearestGrid(299, 520);
}
public static Point nearestGrid
(int x,
int y
) {
int diff = 9999999;
int closestX = 0;
for (int n = 0; n <= 10; n++)
{
if (x > xs[n])
{
if (diff > x-xs[n])
{
closestX = xs[n];
diff = (x)-(xs[n]);
}
}
if (x < xs[n])
{
if (diff > xs[n]-x)
{
closestX = xs[n];
diff = (xs[n])-(x);
}
}
if (x == xs[n])
{
closestX = xs[n];
break;
}
System.
out.
println("n: " + n
+ " diff: " + diff
+ " closestX: " + closestX
); }
diff = 999999999;
int closestY = 0;
for (int n = 0; n <= 10; n++)
{
if (y > ys[n])
{
if (diff > y-ys[n])
{
closestY = ys[n];
diff = y-ys[n];
}
}
if (y < ys[n])
{
if (diff > ys[n]-y)
{
closestY = ys[n];
diff = ys[n]-y;
}
}
if (y == ys[n])
{
closestY = ys[n];
break;
}
System.
out.
println("n: " + n
+ " diff: " + diff
+ " closestY: " + closestY
); }
return p;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLmF3dC5Qb2ludDsKCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewoJc3RhdGljIGludFtdIHhzID0gezMwLCA5NCwgMTU4LCAyMjIsIDI4NiwgMzUwLCA0MTQsIDQ3OCwgNTQyLCA2MDYsIDY3MH07CglzdGF0aWMgaW50W10geXMgPSB7MzAsIDk0LCAxNTgsIDIyMiwgMjg2LCAzNTAsIDQxNCwgNDc4LCA1NDIsIDYwNiwgNjcwfTsKCQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJSWRlb25lLm5lYXJlc3RHcmlkKDI5OSwgNTIwKTsKCX0KCQoJcHVibGljIHN0YXRpYyBQb2ludCBuZWFyZXN0R3JpZChpbnQgeCwgaW50IHkpCiAgICB7CiAgICAgICAgaW50IGRpZmYgPSA5OTk5OTk5OwogICAgICAgIGludCBjbG9zZXN0WCA9IDA7CiAgICAgICAgZm9yIChpbnQgbiA9IDA7IG4gPD0gMTA7IG4rKykKICAgICAgICB7CiAgICAgICAgICAgIGlmICh4ID4geHNbbl0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChkaWZmID4geC14c1tuXSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjbG9zZXN0WCA9IHhzW25dOwogICAgICAgICAgICAgICAgICAgIGRpZmYgPSAoeCktKHhzW25dKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoeCA8IHhzW25dKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAoZGlmZiA+IHhzW25dLXgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgY2xvc2VzdFggPSB4c1tuXTsKICAgICAgICAgICAgICAgICAgICBkaWZmID0gKHhzW25dKS0oeCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHggPT0geHNbbl0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNsb3Nlc3RYID0geHNbbl07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm46ICIgKyBuICsgIiBkaWZmOiAiICsgZGlmZiArICIgY2xvc2VzdFg6ICIgKyBjbG9zZXN0WCk7CiAgICAgICAgfQogICAgICAgIGRpZmYgPSA5OTk5OTk5OTk7CiAgICAgICAgaW50IGNsb3Nlc3RZID0gMDsKICAgICAgICBmb3IgKGludCBuID0gMDsgbiA8PSAxMDsgbisrKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKHkgPiB5c1tuXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKGRpZmYgPiB5LXlzW25dKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGNsb3Nlc3RZID0geXNbbl07CiAgICAgICAgICAgICAgICAgICAgZGlmZiA9IHkteXNbbl07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHkgPCB5c1tuXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKGRpZmYgPiB5c1tuXS15KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGNsb3Nlc3RZID0geXNbbl07CiAgICAgICAgICAgICAgICAgICAgZGlmZiA9IHlzW25dLXk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHkgPT0geXNbbl0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNsb3Nlc3RZID0geXNbbl07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm46ICIgKyBuICsgIiBkaWZmOiAiICsgZGlmZiArICIgY2xvc2VzdFk6ICIgKyBjbG9zZXN0WSk7CiAgICAgICAgfQogICAgICAgIFBvaW50IHAgPSBuZXcgUG9pbnQoY2xvc2VzdFgsIGNsb3Nlc3RZKTsKICAgICAgICByZXR1cm4gcDsKICAgIH0KfQ==