记录编号 163463 评测结果 AAAAAAAAAA
题目名称 最终得分 100
用户昵称 Gravatar0 是否通过 通过
代码语言 C++ 运行时间 0.594 s
提交时间 2015-05-24 16:12:00 内存使用 1.66 MiB
显示代码纯文本
#include <cstdio>
#include <iostream>
#include <algorithm>

using namespace std;

int n,m;
int data[200001];
int a[200001];

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 modfiy(int pos,int ds)
{
	while(pos<=n)
	{
		data[pos]+=ds;
		pos+=pos&(-pos);
	}
}

int cut(int x)
{
	int res=0;
	while(x>0)
	{
		res+=data[x];
		x-=x&(-x);
	}
	return res;
}

int main()
{
	freopen("treed.in","r",stdin);
	freopen("treed.out","w",stdout);
	int i,t,x,y,mid;
	n=in();
	for(i=1;i<=n;++i)
	{
		a[i]=in();
		modfiy(i,a[i]);
	}
	m=in();
	while(m--)
	{
		x=in();y=in();
		printf("%.2lf\n",(cut(y)-cut(x-1))*3.14);
		mid=(x+y)>>1;
		modfiy(mid,-a[mid]);
		a[mid]=0;
	}
}