Strange fuction
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 2 Accepted Submission(s) : 2
Problem Description
Now, here is a fuction:
F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=100)
Can you find the minimum value when x is between 0 and 100.
F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=100)
Can you find the minimum value when x is between 0 and 100.
Input
The first line of the input contains an integer T(1<=T<=100) which means the number of test cases. Then T lines follow, each line has only one real numbers Y.(0 < Y <1e10)
Output
Just the minimum value (accurate up to 4 decimal places),when x is between 0 and 100.
Sample Input
2 100 200
Sample Output
-74.4291 -178.8534
Author
Redow
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
#define f(x) 6*pow(x,7)+8*pow(x,6)+7*pow(x,3)+5*pow(x,2)
#define ff(x) 42*pow(x,6)+48*pow(x,5)+21*pow(x,2)+10*x
int main(int ac,char *av[])
{
int n;
double Y,min,max,mid;
cin>>n;
while(n--)
{
cin>>Y;
if(ff(100.0)-Y<0)
{
printf("%.4lf\n",f(100.0)-Y*100.0);
continue;
}
min=0.0,max=100.0;
while(max-min>=1e-7)
{
mid=(min+max)/2.0;
if(ff(mid)-Y<0)
min=mid;
else
max=mid;
}
printf("%.4lf\n",f(mid)-Y*mid);
}
return 0;
}