We all know the town Radiator Springs, connected to California by
direct road (Route no. 66). After a commendable performance by Lighting
McQueen
at the Piston Cup, the town of Radiator Springs became famous. In order
to improve the traffic capacity of the road, the town's judge
and doctor, Doc Hudson ordered to place on traffic sign, thus limiting
the maximum speed. The traffic sign in the town of Radiator Springs
seems to be a bit odd. The reason being, they only limit the speed where
the traffic signals are placed and just after passing the sign the
cars are allowed to drive at any speed.
It is given that the cars of Radiator Springs has an average accerleration/deceleration of x km/h2, and has a maximum speed of y km/h. The road has the length of L km, and the speed sign, limiting the speed to w km/h, is placed d km (1 <= d <= L) away from the Radiator Springs. You have to find the minimum time that an average Radiator Spring car will need to get from the California, if the car drives at the optimal speed.
Note : The car has a zero speed at the beginning of the journey.
Input format
The first line of the input file contains two integer numbers x and y (1 <= x, y <= 10000). The second line contains three integer numbers L, d and w (2 <= L <= 10000; 1 <= d < L; 1 <= w <= 10000).
Output format
Print the answer with nine digits after the decimal point.
Partial Scoring
This problem has 20 test input files,each of them having score of 5. It means even if 10 input are passed, you will get score as 50 and solution will be marked as accepted. But If the total time limit or memory limit exceeds, then the submission is marked unaccepted even if few testcases might have passed.
It is given that the cars of Radiator Springs has an average accerleration/deceleration of x km/h2, and has a maximum speed of y km/h. The road has the length of L km, and the speed sign, limiting the speed to w km/h, is placed d km (1 <= d <= L) away from the Radiator Springs. You have to find the minimum time that an average Radiator Spring car will need to get from the California, if the car drives at the optimal speed.
Note : The car has a zero speed at the beginning of the journey.
Input format
The first line of the input file contains two integer numbers x and y (1 <= x, y <= 10000). The second line contains three integer numbers L, d and w (2 <= L <= 10000; 1 <= d < L; 1 <= w <= 10000).
Output format
Print the answer with nine digits after the decimal point.
Partial Scoring
This problem has 20 test input files,each of them having score of 5. It means even if 10 input are passed, you will get score as 50 and solution will be marked as accepted. But If the total time limit or memory limit exceeds, then the submission is marked unaccepted even if few testcases might have passed.
Sample Input
1 1 2 1 3
Sample Output
2.500000000
Time Limit:
3 sec(s)
for all input files combined.
Memory Limit:
256 MB
Source Limit:
1024 KB
Code:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
class TestClass {
public static void main(String[] args) {
// TODO Auto-generated method stub
double x=0,y=0,L=0,d=0,w=0,maxspeed=0,t=0,temp=0;
String[] s;
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
DecimalFormat numberFormat = new DecimalFormat("#.000000000");
try {
s=in.readLine().split(" ");
x=Double.parseDouble(s[0]);
y=Double.parseDouble(s[1]);
s=in.readLine().split(" ");
L=Double.parseDouble(s[0]);
d=Double.parseDouble(s[1]);
w=Double.parseDouble(s[2]);
if(y>w){
//before d
if((Math.pow(y,2)/2*x)+((Math.pow(y,2)-Math.pow(w,2))/2*x)<=d){
t=(y/x)+(d-((Math.pow(y,2)/2*x)+((Math.pow(y,2)-Math.pow(w,2))/2*x)))/y+((y-w)/x) ;
}
else{
temp = Math.sqrt((Math.pow(w,2)+(2*x*d))/2);
t= ((2*temp)-w)/x;
}
//after d
if((Math.pow(y,2)-Math.pow(w,2))/(2*x)<=(L-d)){
t+=(y-w)/x+((L-d-((Math.pow(y,2)-Math.pow(w,2))/(2*x)))/y);
}
else{
t+=(Math.sqrt(Math.pow(w,2)+(2*x*(L-d)))-w)/x;
}
//System.out.println("hi!!!!!!");
}
else{
maxspeed = y;
if(Math.pow(maxspeed,2)/(2*x)<=L){
t=(maxspeed/x)+((L-(Math.pow(maxspeed,2)/(2*x)))/maxspeed);
}
else{
t=Math.sqrt((2*L)/x);
//System.out.println("hi!!!!!!");
}
}
System.out.println(numberFormat.format(t));
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
class TestClass {
public static void main(String[] args) {
// TODO Auto-generated method stub
double x=0,y=0,L=0,d=0,w=0,maxspeed=0,t=0,temp=0;
String[] s;
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
DecimalFormat numberFormat = new DecimalFormat("#.000000000");
try {
s=in.readLine().split(" ");
x=Double.parseDouble(s[0]);
y=Double.parseDouble(s[1]);
s=in.readLine().split(" ");
L=Double.parseDouble(s[0]);
d=Double.parseDouble(s[1]);
w=Double.parseDouble(s[2]);
if(y>w){
//before d
if((Math.pow(y,2)/2*x)+((Math.pow(y,2)-Math.pow(w,2))/2*x)<=d){
t=(y/x)+(d-((Math.pow(y,2)/2*x)+((Math.pow(y,2)-Math.pow(w,2))/2*x)))/y+((y-w)/x) ;
}
else{
temp = Math.sqrt((Math.pow(w,2)+(2*x*d))/2);
t= ((2*temp)-w)/x;
}
//after d
if((Math.pow(y,2)-Math.pow(w,2))/(2*x)<=(L-d)){
t+=(y-w)/x+((L-d-((Math.pow(y,2)-Math.pow(w,2))/(2*x)))/y);
}
else{
t+=(Math.sqrt(Math.pow(w,2)+(2*x*(L-d)))-w)/x;
}
//System.out.println("hi!!!!!!");
}
else{
maxspeed = y;
if(Math.pow(maxspeed,2)/(2*x)<=L){
t=(maxspeed/x)+((L-(Math.pow(maxspeed,2)/(2*x)))/maxspeed);
}
else{
t=Math.sqrt((2*L)/x);
//System.out.println("hi!!!!!!");
}
}
System.out.println(numberFormat.format(t));
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
0 comments:
Post a Comment