Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <iomanip>
- using namespace std;
- double function (double v1, double v2, double a, double x)
- {
- double time;
- time = (sqrt((1-a)*(1-a) + x*x))/v1 + (sqrt((1-x)*(1-x) + a*a))/v2;
- return time;
- }
- double poisk (double v1, double v2, double a, double left, double right)
- {
- double m1, m2;
- while (right - left > 0.00000001)
- {
- m1 = left + (right - left)/3;
- m2 = right - (right - left)/3;
- double znach1 = function (v1, v2, a, m1);
- double znach2 = function (v1, v2, a, m2);
- //cout << znach1 << " " << znach2 << endl;
- if (znach1 > znach2)
- left = m1;
- else if (znach1 < znach2)
- right = m2;
- else if (znach1 == znach2)
- {
- left = m1;
- right = m2;
- }
- }
- //cout << m1 << " ";
- return left;
- }
- int main ()
- {
- double speed_1, speed_2, granica;
- cin >> speed_1 >> speed_2;
- cin >> granica;
- cout.setf(ios::fixed); // вывод в фиксированном формате
- cout.precision(8);
- cout << poisk (speed_1, speed_2, granica, 0, 1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement