#include struct FastIO { char buf[1000000]; char *ptr = buf; void read() { int size; size = fread_unlocked(buf, 1, sizeof(buf) - 1, stdin); buf[size] = '\0'; ptr = buf; } FastIO () { read(); } void inc() { if (++ptr == buf + sizeof(buf) || !*ptr) read(); } template Integer read() { bool neg = false; Integer res = 0; while ((*ptr < '0' || *ptr > '9') && *ptr != '-') inc(); if (*ptr == '-') neg = true, inc(); while (*ptr >= '0' && *ptr <= '9') res = res * 10 + *ptr - '0', inc(); return neg ? -res : res; } } fastio; #define ri fastio.read #define rs64 fastio.read int main() { int x0 = ri(), y0 = ri(), x1 = ri(), y1 = ri(); printf("%.7f\n", y0 + (double) (y1 - y0) * x0 / (x0 + x1)); return 0; }