线段树版作死代码:
#include<bits/stdc++.h>
#define ll long long
#define PII pair<int,int>
using namespace std;
const int N=10;
const ll INF=0x3f3f3f3f3f3f3f3f;
const double EPS=10e-6;
char op;
ll n,m,a[N],x,y,k;
ll sum[N],tag[N];
void pushup(int o){
sum[o]=sum[o<<1]+sum[o<<1|1];
}
void maketag(int o,ll len,ll x){
tag[o]+=x;
sum[o]+=len*x;
}
void pushdown(int o,int l,int r){
ll mid=l+r>>1;
maketag(o<<1,mid-l+1,tag[o]);
maketag(o<<1|1,r-mid,tag[o]);
tag[o]=0;
}
void build(int o,int l,int r){
if(l==r){
sum[o]=a[l];
return;
}
ll mid=l+r>>1;
build(o<<1,l,mid);
build(o<<1|1,mid+1,r);
pushup(o);
}
void update(int o,int l,int r){
if(x<=l&&r<=y){
maketag(o,r-l+1,k);
return;
}
ll mid=l+r>>1;
pushdown(o,l,r);
if(x<=mid)update(o<<1,l,mid);
if(y>mid)update(o<<1|1,mid+1,r);
pushup(o);
}
ll query(int o,int l,int r){
if(x<=l&&r<=y)return sum[o];
ll mid=l+r>>1,ans=0;
pushdown(o,l,r);
if(x<=mid)ans+=query(o<<1,l,mid);
if(y>mid)ans+=query(o<<1|1,mid+1,r);
return ans;
}
void solve(){
n=1;
for(int i=1;i<=n;i++)cin>>a[i];
build(1,1,n);
cin>>k;
x=1,y=1;
update(1,1,n);
cout<<query(1,1,n);
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
int T=1;
// cin>>T;
while(T--)solve();
return 0;
}