Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define icin(x) scanf("%d",&x)
- #define pb push_back
- #define LL long long
- #define F first
- #define S second
- #define eps ((double)1e-14)
- #define maxn 109
- #define maxm 100009
- using namespace std;
- vector<double> vec;
- double f(double r)
- {
- double ans = 0;
- int cur = 1;
- for(int i=0;i<vec.size();i++)
- {
- ans += (vec[i])/pow((1+r),cur);
- cur++;
- }
- return ans;
- }
- int main()
- {
- int t;
- icin(t);
- for(int tc=1;tc<=t;tc++)
- {
- int m;
- icin(m);
- int s;
- cin >> s;
- vec.clear();
- for(int i=0;i<m;i++)
- {
- int x;
- icin(x);
- vec.pb((double)x);
- }
- double lo=-1,hi=1;
- double k;
- for(int i=1;i<=5000;i++)
- {
- k = (lo+hi)/2;
- // cout << k << " " ;
- if(f(k)>s)
- lo=k;
- else
- hi=k;
- }
- printf("Case #%d: %.20lf\n",tc,k);
- }
- }
Add Comment
Please, Sign In to add comment