记录编号 162749 评测结果 WWWWWWWTTT
题目名称 最终得分 0
用户昵称 Gravatar葳棠殇 是否通过 未通过
代码语言 C++ 运行时间 4.846 s
提交时间 2015-05-20 07:57:50 内存使用 15.57 MiB
显示代码纯文本
#include<cstdio>
#include<string>
#include<iostream>
using namespace std;
double a[1000001],d[1000001],m;
inline int lowbit(int x)
{
	return x&(-x);
}
inline int in()
{
	char c=getchar();
	int x=0;
	while(c<'0'||c>'9')c=getchar();
	for(;c>='0'&&c<='9';c=getchar())x=x*10+c-'0';
	return x;
}
void sum(int b)
{
	int i;
	for(i=b;i<=m;i+=lowbit(i))
	{
		d[i]+=a[b];
	}
}
double yi(int c)
{
	double sum=0;
	for(int i=c;i;i-=lowbit(i))
	{
		sum+=d[i];
	}
	return sum;
}
int change(int i)
{
	for(int j=i;j<=m;j+=lowbit(j))
	{
		d[j]-=a[i];
	}
}
int work(int n)
{
    for(int i=1;i<=n;i++)
	{
		a[i]=(double)in()*3.14;
		sum(i);
	}
	int p=in();
	for(int i=1;i<=p;i++)
	{
		int b,c;
		b=in(),c=in();
		//cout<<yi(c)-yi(b-1)<<endl;
		printf("%.1000lf\n",(yi(c)-yi(b-1)));
		int rr=(b+c)>>1;
		change(rr);
		a[rr]=0;
	}
}
int main()
{
	freopen("treed.in","r",stdin);
	freopen("treed.out","w",stdout);
	m=in();
	work(m);
}