题意:
杰克船长又要逃跑了……现在他驾着马车匀速前进,要通过一道铁门,但是如果看到守卫开始放下门闸的话可能会勒马以恒定的加速度减速前进。已知马车车长,高度,行进速度,勒马后的加速度,还有门闸的初始高度,以及放门闸后门闸的下降速度,问是否存在这样一个时间点,在守卫放下门闸后,不管船长减速前进还是原速前进,都会撞上门闸或被门闸卡住。注意船长在门闸放下前是不会勒马的。
题解:
也就是求两段区间,在什么时候放下门闸,原速前进和减速前进会撞上,如果两段区间有重叠,说明存在这样的可能性。
注意除法可能会有精度问题,所以最好不用除法。
初中的物理公式不会忘了吧……
//Time:31ms
//Memory:353KB
//Length:561B
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <algorithm>
#define MAXN 1010
#define EPS 1e-8
using namespace std;
int main()
{
//freopen("/home/moor/Code/input","r",stdin);
long long l,h,H,v,x,a;
long long ll[2],rr[2],tv,t;
while(cin>>l>>h>>H>>v>>x>>a)
{
l*=x*2*a*x;
t=(H-h);
rr[0]=t*v*2*a*x,ll[0]=rr[0]-l;
tv=max(v*x-a*t,0LL);
rr[1]=(v*v*x*x-tv*tv),ll[1]=rr[1]-l;
if(rr[0]<ll[1]||rr[1]<ll[0]) printf("Safe\n");
else printf("Crash\n");
}
return 0;
}