Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void solve() {
- // Test case #4
- n = 4;
- points = new ArrayList<>(n);
- points.add(new Point(1,-10000000));
- points.add(new Point(1, 10000000));
- points.add(new Point(10000000, -10000000));
- points.add(new Point(10000000, 10000000));
- // This solution incorrectly returns "true"
- double r = 4.989034101842852E13;
- double x = 9765.625;
- io.println(acceptable(x,r));
- }
- boolean acceptable(double x, double r) {
- double maxDistLeft = 0;
- double maxDistRight = 0;
- for (Point p : points) {
- double xDist = Math.abs(x - p.x);
- double yDist = Math.abs(r - p.y);
- double dist2 = xDist * xDist + yDist * yDist;
- if (p.x <= x) {
- maxDistLeft = max(maxDistLeft, dist2);
- } else {
- maxDistRight = max(maxDistRight, dist2);
- }
- }
- return (maxDistLeft <= r*r && maxDistRight <= r*r);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement