#include <cstdio>
#include <cmath>
#include <iostream>
#include <algorithm>
using namespace std;
const int MAXN = 1e6 + 5;
long long bit[MAXN];
int a[MAXN];
int n, m;
int Lowbit_Set(int x)
{
return x & (-x);
}
void Update_Set(int x, int num)
{
for (int i = x; i <= n; i += Lowbit_Set(i))
{
bit[i] += num;
}
}
long long Sum_Set(int x)
{
long long sum_ = 0;
for (int i = x; i >= 1; i -= Lowbit_Set(i))
{
sum_ += bit[i];
}
return sum_;
}
int main() {
scanf("%d %d", &n, &m);
for (int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
Update_Set(i, a[i]);
}
for (int i = 1; i <= m; i++)
{
int x, y, z;
scanf("%d %d %d", &x, &y, &z);
if (x == 1) {
Update_Set(y, z);
}
if (x == 2)
{
long long sum1_ = Sum_Set(y - 1);
long long sum2_ = Sum_Set(z);
printf("%lld\n", sum2_ - sum1_);
}
}
return 0;
}

0 条评论

目前还没有评论...

信息

ID
2610
时间
1000ms
内存
256MiB
难度
9
标签
递交数
225
已通过
25
上传者