Monday, 17 August 2015

Radiator Springs

Standard
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.

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();
        }

    }

Related Posts:

  • Capture Castle A man loves playing Age of Empire. A few days ago, he discovered a variant of that game which is equally adventurous. Here, he has to capture a cas… Read More
  • The cheapest palindrome Palindrome is a string that reads the same backward as forward, e.g., madam. You are given a string whose length is even, and each character of t… Read More
  • Survey Analysis WebEngage empowers companies to collect feedback and gather insights from visitors using survey and notifications. An e-commerce company used the We… Read More
  • Teaching how to draw A man has brought a new drawing book for his child, which consists only of geometric shapes. Its consists of lessons where the child has to make dr… Read More
  • The colorful street There is a street by the name of colorful street in the Pretty Town. The residents of the house have decided that they will paint their houses in e… Read More

0 comments:

Post a Comment