Submission #1190465

#TimeUsernameProblemLanguageResultExecution timeMemory
1190465ezzzayAddk (eJOI21_addk)C++20
92 / 100
129 ms5892 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...