不知道为什么用C++输入输出死活不过,换成C的就过了。。。
#include
#include
//==============================
#define maxn 50020
int c[maxn];
int a[maxn];
int n;
int t;
int lowbit(int x)
{
return x&(-x);
}
int Sum(int n)
{
int sum = 0;
while(n>0)
{
sum += c[n];
n = n - lowbit(n);
}
return sum;
}
void update(int i,int x)
{
while(i <= n)
{
c[i] = c[i] + x;
i = i + lowbit(i);
}
}
int GetSum(int x1,int x2)
{
return Sum(x2) - Sum(x1-1);
}
//===================================
int main()
{
scanf("%d",&t);
int count = 0;
while(t--)
{
count++;
memset(a,0,sizeof(a));
memset(c,0,sizeof(c));
scanf("%d",&n);
for(int i = 1; i <= n; i++)
{
scanf("%d",&a[i]);
update(i,a[i]);
}
//cout<<"case "<