Submission #593496

#TimeUsernameProblemLanguageResultExecution timeMemory
593496serkanrashidAddk (eJOI21_addk)C++14
92 / 100
54 ms7380 KiB
#include <bits/stdc++.h> #define endl '\n' using namespace std; const int maxn=1e5+5; int n,k,q; long long a[maxn],pref[maxn],suff[maxn],dp[maxn]; void read() { cin >> n >> k; for(int i=1;i<=n;i++) { cin >> a[i]; pref[i]=pref[i-1]+a[i]*i; dp[i]=dp[i-1]+a[i]; suff[i]=suff[i-1]+a[i]*(n-i+1); } cin >> q; int ch,l,r,m,idx,mid,obr; long long ans=0; for(int i=1;i<=q;i++) { cin >> ch; ans=0; if(ch==1) { cin >> ch; } else { cin >> l >> r >> m; //cout << "++++++++++++++++++++++++++" << endl; m=min(m,r-l+2-m); idx=l+m-1; mid=(l+r)/2; idx=min(idx,mid); m=idx-l+1; ans+=(((pref[idx-1]-pref[l-1]))-((dp[idx-1]-dp[l-1])*(l-1))); obr=l+r-idx; ans+=(((suff[r]-suff[obr]))-((dp[r]-dp[obr])*(n-r))); ans+=(((dp[obr]-dp[idx-1])*((idx-l+1)))); cout << ans << endl; } } } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); read(); return 0; } /* 8 1 7 2 5 1 9 3 4 6 6 2 3 8 4 2 5 6 2 2 6 8 1 2 1 8 4 2 1 8 6 2 3 7 2 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...