题目描述
在高为 H 的天花板上有 n 个小球,体积不计,位置分别为 0,1,2,⋯,n−1。在地面上有一个小车(长为 L,高为 K,距原点距离为 S1)。已知小球下落距离计算公式为 d=0.5×g×(t^2),其中 g=10,t 为下落时间。地面上的小车以速度 V 前进。
如下图:
小车与所有小球同时开始运动,当小球距小车的距离≤0.0001 时,即认为小球被小车接受(小球落到地面后不能被接受)。
请你计算出小车能接受到多少个小球。
输入格式
H,S1,V,L,K,n (l≤H,S1,V,L,K,n≤100000)
输出格式
小车能接受到的小球个数。
输入样例
5.0 9.0 5.0 2.5 1.8 5
输出样例
1
说明/提示
当球落入车的尾部时,算作落入车内。
代码
#include<iostream>
#include<cmath>
double H, S1, V, L, K, n;
inline double getT(double d) {
return sqrt(d / 5);
}
int main() {
std::cin >> H >> S1 >> V >> L >> K >> n;
double st = getT(H - K);
double et = getT(H);
double sd = S1 - st * V + L;
double ed = S1 - et * V;
int ans = 0;
for (int i = 0; i < n; i++)
if ((i < sd && i > ed) || (abs(i - sd) <= 0.0001) || (abs(i - ed) <= 0.0001))
ans++;
std::cout << ans;
return 0;
}