#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
#define int long long
const int N=3e5+5;
int a[N];
int ps[N];
int PS[N],SF[N];
vector<int>ans;
signed main(){
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>a[i];
ps[i]=ps[i-1]+a[i];
PS[i]=PS[i-1]+ i*a[i];
}
for(int i=n;i>=1;i--){
SF[i]=SF[i+1]+ (n-i+1)*a[i];
}
int q;
cin>>q;
while(q--){
int t;
cin>>t;
if(t==1){
int x;
for(int i=1;i<=k;i++)cin>>x;
}
else{
int l,r,m;
cin>>l>>r>>m;
int s=0;
int k=min(m,r-l+1-m+1);
int L=l+k-1;
int R=r-k+1;
s= (ps[R-1]-ps[L])*k;
s+= (PS[L]-PS[l-1]) - (ps[L]-ps[l-1])*(l-1);
s+= SF[R]-SF[r+1] - (ps[r]-ps[R-1])*(n-r);
ans.pb(s);
}
}
for(auto a:ans)cout<<a<<endl;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |