SGU 146.The Runner

时间限制: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);
}

  

posted @ 2014-07-13 18:33  keambar  阅读(236)  评论(0编辑  收藏  举报