Billiards

AtCoder
IDabc183_b
Time2000ms
Memory256MB
Difficulty
Takahashi is playing billiards on a two-dimensional plane. The $x$\-axis functions as a wall; when a ball hits the axis, it will bounce off the axis so that the angle of incidence equals the angle of reflection. Takahashi's ball is now at $(S_x,S_y)$. When he strikes the ball aiming for some point, it will roll in a straight line towards that point. To make the ball hit the $x$\-axis exactly once and then pass $(G_x, G_y)$, where along the $x$\-axis should he aim for? ## Constraints * $-10^6 \leq S_x, G_x \leq 10^6$ * $0 < S_y, G_y \leq 10^6$ * $S_x \neq G_x$ * All values in input are integers. ## Input Input is given from Standard Input in the following format: $S_x$ $S_y$ $G_x$ $G_y$ [samples]
Samples
Input #1
1 1 7 2
Output #1
3.0000000000

As shown below, we can make the ball pass $(7, 2)$ by striking it aiming for $(3, 0)$.
![image](https://img.atcoder.jp/ghi/c9595d59f1139b808d4cf3d31d6b48ee.png)
Input #2
1 1 3 2
Output #2
1.6666666667

![image](https://img.atcoder.jp/ghi/4f2c808fddc9bb349999f8969996ebb9.png)
Input #3
\-9 99 -999 9999
Output #3
\-18.7058823529

The output will be considered correct when its absolute or relative error from our answer is at most $10^{-6}$.
API Response (JSON)
{
  "problem": {
    "name": "Billiards",
    "description": {
      "content": "Takahashi is playing billiards on a two-dimensional plane. The $x$\\-axis functions as a wall; when a ball hits the axis, it will bounce off the axis so that the angle of incidence equals the angle of ",
      "description_type": "Markdown"
    },
    "platform": "AtCoder",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "abc183_b"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Takahashi is playing billiards on a two-dimensional plane. The $x$\\-axis functions as a wall; when a ball hits the axis, it will bounce off the axis so that the angle of incidence equals the angle of ...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments