Unlucky Bird(数学啊 )

题目链接:?problem=1311

A bird was flying on a train line, singing and passing lazy times. After a while it saw a train coming from its behind, so, it speeded up a bit, but remained calm. After a while it saw another train coming towards it from the front side. The bird remained calm thinking that the train coming towards him would be in another line. But after a while it realized that both the trains were on the same line!

So, the stupid brave bird made a plan to stop the accident. So it flew towards the train which was coming from the front side, and after touching the train the bird turned back immediately, and flew until it could touch another train. And after that it turned back, and continued this procedure. The birds’ intention was to signal the drivers such that they could stop the train.

When the trains weredmeter way, the drivers realized the abnormal behavior of the strange bird, and saw the opposite trains, and both drivers braked hard! But alas! They were able to stop the collision, but they managed to stop in front of each other leaving no distance. And the brave bird was dead in the middle of the trains. Thousand lives saved, but none remembered the bird.

For simplicity we denote the train (that was behind the bird) as the left train and the other one as the right train. The left train had velocityv1m/s(meter per second) and the right train had velocityv2m/sand they saw each other when they weredmeter away. The driver in the left train made a deceleration ofa1m/s2and the driver in the right train made a deceleration ofa2m/s2. And the trains just avoided collision. That means they just stopped when their distance was0meter. The bird had constant velocity ofv3m/s. And assume that the bird can turn immediately and can keep its constant velocity. When the trains weredmeter away, the bird was somewhere between the trains. Your task is to find the distance covered by the brave bird (from this moment) in meters before sacrificing its life for thousand lives.

Input

Input starts with an integerT (≤ 100), denoting the number of test cases.

Each case starts with a line containing five positive real numbers:v1v2v3a1a2(v1< v3, v2< v3). No real number will be greater than1000. And no number contains more than three digits after the decimal point.

Output

For each case, print the case number,dand the distance covered by the bird. Errors less than10-6will be ignored.

Sample InputOutput for Sample Input

1

0.5 1.0 2 0.25 0.5

Case 1: 1.50000000 4.0

代码如下:

#include <cstdio>#include <cmath>#include <algorithm>using namespace std;int main(){int t;double v1, v2, v3, a1, a2;int cas = 0;scanf("%d",&t);while(t–){scanf("%lf%lf%lf%lf%lf",&v1,&v2,&v3,&a1,&a2);double t1 = v1/a1;double t2 = v2/a2;double tt = max(t1, t2);double s1 = v1*v1/(2*a1);double s2 = v2*v2/(2*a2);printf("Case %d: %lf %lf\n",++cas,s1+s2,v3*tt);}return 0;}

,到一个新的环境去欣赏去看去听,

Unlucky Bird(数学啊 )

相关文章:

你感兴趣的文章:

标签云: