70pts99我
查看原帖
70pts99我
1284381
Lgc2012楼主2024/9/1 08:49

我用差分数组做的

#include<bits/stdc++.h>
using namespace std;
long long n,m,a[10000100],s[10000100],b,x,y,k;
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		s[i]=a[i]-a[i-1];
	}
	for(int i=1;i<=m;i++){
		cin>>b;
		if(b==1) {
			cin>>x>>y>>k;
			s[x]+=k;
			s[y+1]-=k;
		}
		else {
			long long sum=0,lx=0;
			cin>>x>>y;
			for(int i=1;i<=x;i++){
				sum+=s[i];
				lx+=s[i];
			}
			for(int i=x+1;i<=y;i++){
				sum+=lx+s[i];
				lx+=s[i];
			}
			cout<<sum<<endl;
		}
	}
	return 0;
} 

TLE

2024/9/1 08:49
加载中...