Example #1
0
File: 198c.cpp Project: 199911/acm
int main() {
  st.eat();
  scanf( "%lf", &vp );
  cur.eat();
  scanf( "%lf%lf", &v, &r );
  R = st.mag();
  o = vp / R;
  s = ang( st );
  t = ang( cur );

  Q = t - s;
  while ( Q < -EPS ) Q += 2 * PI;

  double up = 1e9, lo = 0;

  while ( up > lo + 1e-10 ) {
    double mid = (up + lo) / 2.0;

    double ang = s + o * mid;

    P p = P( R * cos(ang), R * sin(ang) );

    double d = dist( p, cur );

    if ( d < mid * v + EPS ) {
      up = mid;
    } else {
      lo = mid;
    }
  }

  printf( "%.9f\n", up);

	return 0;
}