#include<bits/stdc++.h>
using namespace std;
int n,a,d;
double z;
int main(){
cin >> n >> a >> d;
while(n--){
double t0,v;
cin >> t0 >> v;
double ans=t0;
if(v*v/(2*a)>=d){
ans+=sqrt(1.0*2*d/a); //这里注意要*1.0
}
else{
ans+=d/v;
ans+=v/(2*a); //这里比较巧妙,ans+=(1.0/2)*(v/a),因为另一个(1.0/2)*(v/a)在ans+=d/v时就加上了,还不明白,看参考博客
}
z=max(z,ans);
ans=z;
ans*=10000;
ans=floor(ans); //floor函数表示向下取整
ans/=10000;
printf("%.4lf\n",ans);
}
return 0;
}
京公网安备 11010502036488号