0分!求助!
查看原帖
0分!求助!
768490
izkun6楼主2024/9/22 17:21
#include<bits/stdc++.h>
using namespace std;
const int N=500100;
int c[N];
int n,m;
int lowbit(int x){
	return x&(-x);
}
void add(int x,int d){
	while(x<=n){
		c[x]+=d;
		x+=lowbit(x);
	}
}
long long sum(int x){
	long long ans=0;
	while(x>0){
		ans+=c[x];
		x-=lowbit(x);
	}
	return ans;
}
int in[N];
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>in[i];
		int x=in[i]-in[i-1];
		add(i,x);
	}
	for(int i=1;i<=m;i++){
		int a,b,c,d;
		cin>>a>>b>>c;
		if(a==1){
		    cin>>c>>d;
			add(b,d);
			add(c+1,-d);
		}
		else{
			cout<<sum(b)<<'\n';
		}
	}
}
2024/9/22 17:21
加载中...