题解:AT_abc442_d [ABC442D] Swap and Range Sum
对
AC 代码:
#include"bits/stdc++.h"
const int N = 2e5 + 5;
int a[N],sum[N];
int main(){
std::cin.tie(0)->sync_with_stdio(0);
int n,q;std::cin >> n >> q;
for (int i = 1;i <= n;i++) std::cin >> a[i],sum[i] = sum[i - 1] + a[i];
while (q--){
int op,x,l,r;std::cin >> op;
if (op == 1){
std::cin >> x;
sum[x] += a[x + 1] - a[x];
std::swap(a[x],a[x + 1]);
}
else{
std::cin >> l >> r;
std::cout << sum[r] - sum[l - 1] << '\n';
}
}
return 0;
}