Submission #592073

#TimeUsernameProblemLanguageResultExecution timeMemory
592073serkanrashidAddk (eJOI21_addk)C++14
0 / 100
27 ms2632 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]; } for(int i=n;i>=1;i--) { suff[i]=suff[i+1]+a[i]*(n-i+1); } cin >> q; int ch,l,r,m,idx,mid,len,obr; long long ans; for(int i=1;i<=q;i++) { cin >> ch; ans=0; if(ch==1) cin >> ch; else { cin >> l >> r >> m; len=r-l+1; idx=l+m-1; if(!(len%2)) len--; mid=(len/2)+l; if(mid>=idx) ///SUPEER { 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])*m); } else ///TUPICHKO { idx=mid; 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; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...