
时间限制:0.25s
空间限制:4M
题意:
一个人在一个周长为L的圆上跑,每个时间段(Ti)的速度(Vi)不一样,问最后他离起点的圆弧距离,周长是个有四位小数的浮点数,其它全是整数。
Solution :
在遇到浮点数的时候,能避免处理就尽量避免处理。
这里只要将浮点数乘上10000,即可当成整数处理。最后再除以10000,输出就好。
代码:
#include<cstdio>
#include<cmath>
typedef long long LL;
const int E=10000;
LL len,v,t,sum;
double answer,l;
int n;
int main(){
int i;
scanf("%lf %d",&l,&n);
len=round(l*E);
for(i=1;i<=n;++i){
scanf("%lld %lld",&v,&t);
sum+=v*t*E;
sum%=len;
}
answer=(double)sum;
answer/=E;
if(l-answer<answer)answer=l-answer;
printf("%.4lf",answer);
}