- C++
1
- @ 2026-6-30 16:08:18
#include <iostream>
#include <vector>
using namespace std;
typedef long long ll;
const int MAXN = 100005;
ll pre[MAXN];
int a[MAXN];
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
for (int i = 1; i <= n; ++i)
{
cin >> a[i];
pre[i] = pre[i - 1] + a[i];
}
int m;
cin >> m;
int change_k = 0;
int old_v = 0, new_v = 0;
ll diff = 0;
for (int i = 0; i < m; ++i)
{
int op;
cin >> op;
if (op == 1)
{
int L, R;
cin >> L >> R;
ll sum = pre[R] - pre[L - 1];
if (change_k != 0 && L <= change_k && change_k <= R)
{
sum += diff;
}
cout << sum << '\n';
}
else if (op == 2)
{
int k, num;
cin >> k >> num;
change_k = k;
old_v = a[k];
new_v = num;
diff = new_v - old_v;
}
}
return 0;
}
0 comments
No comments so far...