Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip>
- #include <cstdint>
- #include <cstdio>
- #include <math.h>
- using namespace std;
- int main() {
- int V_field;
- int V_forest;
- cin >> V_field >> V_forest;
- long double border;
- cin >> border;
- long double L = 0;
- long double R = 1;
- while (R - L > 0.000001) {
- long double a = (L * 2 + R) / 3;
- long double b = (L + R * 2) / 3;
- long double a_time = sqrt(a * a + (1 - border) * (1 - border)) / V_field +
- sqrt((1 - a) * (1 - a) + border * border) / V_forest;
- long double b_time = sqrt(b * b + (1 - border) * (1 - border)) / V_field +
- sqrt((1 - b) * (1 - b) + border * border) / V_forest;
- if (a_time < b_time) {
- R = b;
- }
- else {
- L = a;
- }
- }
- cout << fixed << setprecision(13) << (L + R) / 2 << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement