不知道哪里错了
查看原帖
不知道哪里错了
771125
wheat__楼主2024/11/23 08:52
#include<bits/stdc++.h>
using namespace std;
int n,m;
int tree[500010];
int lowbit(int x){
	return x&-x;
}
void add(int x,int k){
	while(x<=n){
		tree[x]+=k;
		x+=lowbit(x);
	}
}
int sum(int x){
	int t=0;
	while(x!=0){
		t+=tree[x];
		x-=lowbit(x);
	}
	return t;
}
int main(){
	ios::sync_with_stdio(0),cin.tie(0);
	int n,m;
	cin>>n>>m;
	int p=0;
	for(int i=1;i<=n;i++){
		int a;
		cin>>a;
		add(i,a-p);
		p=a;
	}
	for(int i=1;i<=m;i++){
		int s;
		cin>>s;
		if(s==1){
			int x,y,k;
			cin>>x>>y>>k;
			add(x,k);
			add(y+1,-k);
		}else{
			int x;
			cin>>x;
			cout<<sum(x)<<endl;
		}
	}
}
2024/11/23 08:52
加载中...