Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <algorithm>
- #include <iomanip>
- #include <math.h>
- using namespace std;
- int n;
- double z;
- double z2;
- double a;
- double f (double m)
- {
- vector <double> v(1000);
- v[0] = a;
- v[1] = m;
- for (int i = 2; i < n; i++)
- v[i] = 2*(1 + v[i - 1]) - v[i - 2];
- double k;
- for (int i = 0; i < n; i++)
- if (v[i] < k)
- k = v[i];
- return k;
- }
- double b_res (double m)
- {
- vector <double> v(1000);
- v[0] = a;
- v[1] = m;
- for (int i = 2; i < n; i++)
- v[i] = 2*(1 + v[i - 1]) - v[i - 2];
- return v[n-1];
- }
- double bin_search (double l, double r)
- {
- if (r - l > 0.000000000001)
- {
- double m = (l + r) / 2;
- z = b_res(m);
- z2 = f(m);
- if (z2 >= 0)
- bin_search(l, m);
- else {
- bin_search(m, r);
- }
- }
- }
- int main() {
- cin >> n >> a;
- double l = 0;
- double r = 1000;
- bin_search(l, r);
- cout << fixed << setprecision(2) << abs(z);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement