#include<iostream>
#include<vector>
#include<string>
#include<cstdio>
#include<iomanip>

using namespace std;
typedef long long ll;
typedef unsigned long long ull;

const ll LLMAX = (1llu<<(sizeof(ll)*8-1)) - 1;
const int IMAX = (1llu<<(sizeof(int)*8-1)) - 1;

double sx, sy, gx, gy;

int main(){
  cin >> sx >> sy >> gx >> gy;

  double d = abs((gx - sx) *  gy / (sy + gy));
  if(sx <= gx){
    cout << setprecision(20) << gx - d << endl;
  } else {
    cout << setprecision(20) << gx + d << endl;
  }

  return 0;
}

#include <bits/stdc++.h>
using namespace std;
int main() {
  double Sx, Sy, Gx, Gy;
  cin >> Sx >> Sy >> Gx >> Gy;
  
  double x;
  x = (10000000000 * Sy * (Gx - Sx) / (Sy + Gy) + 10000000000 * Sx) /10000000000;
  cout << std::fixed << std::setprecision(10) << x << endl;
}