}else {
printf(" %I64d",b[i]);
} } printf("\n");
} return 0; } int f(int k) {
return (k&-k); } void build(__int64 k,__int64 val) {
while(k>0) { tree2[k]+=val;
k-=f(k); } } __int64 search(__int64 k) {
__int64 s=0; while(k<=m)
{ s+=tree2[k];
k+=f(k); }
{
while(k>0)
{
tree1[k]+=val;
k-=f(k);
} } __int64 search2(__int64 k) {
__int64 s=0; while(k<=n)
{ s+=tree1[k];
k+=f(k); }
return s; }