比赛 20111012 评测结果 AAAAAWAWAW
题目名称 抗击SARS 最终得分 70
用户昵称 Makazeu 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-10-12 21:55:41
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
double x,r,l,v,wu,bing,q[20][650000];
int answer=0,qi,mo,dai=1,t=2,w[22];
int main()
{
	freopen("sars.in","r",stdin);
	freopen("sars.out","w",stdout);
	cin>>x>>r>>l>>v;
	wu=0;
	bing=x;
	if (wu>=bing-r-0.00001&&wu<=bing+r+0.00001)
	{
		answer++;
	}
	wu+=v;
	if (wu>=bing-r-0.00001&&wu<=bing+r+0.00001)
	{
		answer++;
	}
	w[1]=2;
	q[1][0]=bing-l;
	q[1][1]=bing+l;
	while (l>=1)
	{
		int temp=0,ge=0;
		wu+=v;
		for (int i=0;i<w[dai];)
		{	
			if (wu-v<q[dai][i]-r-0.00001&&wu>q[dai][i]-r-0.00001)
				temp++;
			if (wu-v<q[dai][i]-r-0.00001&&wu>q[dai][i]+r+0.00001)
				temp++;
			if (wu-v>q[dai][i]-r-0.00001&&wu<q[dai][i]+r+0.00001)
				temp++;
			if (wu-v<q[dai][i]+r+0.00001&&wu>q[dai][i]+r+0.00001)
			{
				temp++;
			}
			i+=1;
		}
		if (temp)
			answer++;
		for (int i=0;i<w[dai];i++)
		{
			q[dai+1][i*2]=q[dai][i]-l/2;
			q[dai+1][i*2+1]=q[dai][i]+l/2;
			ge++;
		}
		w[dai+1]=ge*2;
		dai++;
		l=l/2;
	}
	printf("%d\n",answer);
	return 0;
}