int n;
const int maxn = 100010;
int a[maxn];
int sum1[maxn];
int sum2[maxn];
inline int lowbit(int x)
{
return x & (-x);
}
inline void updata(int i, int k)
{
int x = i;
while (i <= n)
{
sum1[i] += k;
sum2[i] += k * (x - 1);
i += lowbit(i);
}
}
inline int get_sum(int i)
{
int res = 0;
int x = i;
while (i > 0)
{
res += x * sum1[i] - sum2[i];
i -= lowbit(i);
}
return res;
}
int main()
{
//输入n
for (int i = 1; i <= n; i++)
{
//输入a[i]
updata(i, a[i] - a[i - 1]);
}
int l, r, t;
//输入l,r,t
//[l,r]区间加t
updata(l, t);
updata(r + 1, t);
//输入l,r
int sum;
//询问[l,r]区间和
sum = get_sum(r) - get_sum(l - 1);
}