记录编号 161566 评测结果 AAAAAAAAAA
题目名称 最终得分 100
用户昵称 Gravatarstdafx.h 是否通过 通过
代码语言 C++ 运行时间 0.601 s
提交时间 2015-05-07 17:52:14 内存使用 1.82 MiB
显示代码纯文本
#include <cstdio>

using namespace std;

int n,tree[200001],data[200001],l,r,tp,m;

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 modify(int pos,int val)
{
	while(pos<=n)
	{
		tree[pos]+=val;
		pos+=pos&(-pos);
	}
	return;
}

int SUM(int pos)
{
	int Sum=0;
	while(pos>0)
	{
		Sum+=tree[pos];
		pos-=pos&(-pos);
	}
	return Sum;
}

int main()
{
	freopen("treed.in","r",stdin);
	freopen("treed.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		data[i]=in();
		modify(i,data[i]);
	}
	scanf("%d",&m);
	for(int i=1;i<=m;i++)
	{
		l=in();r=in();
		printf("%.2lf\n",(SUM(r)-SUM(l-1))*3.14);
		tp=(l+r)>>1;
		modify(tp,-data[tp]);
		data[tp]=0;
	}
	return 0;
}