# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
632055 | Jovan26 | Addk (eJOI21_addk) | C++14 | 394 ms | 1048576 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
long long n;
cin>>n;
long long k;
cin>>k;
long long a[n];
int rezz[n][n] = {{0}};
for(long i=0;i<n;i++) cin>>a[i];
long long q;
cin>>q;
bool p = false;
vector<long long> v;
long long pref[n];
pref[0] = a[0];
for(int i=1;i<n;i++){
pref[i] = pref[i-1]+a[i];
}
for(long long j=0;j<q;j++){
int x;
cin>>x;
if(x==1){
int y;
cin>>y;
continue;
}
long long l,r,m;
p = true;
cin>>l>>r>>m;
long long ma = min(m,(r-l+1-m+1));
long long rez1 = 0;
if (rezz[l-1][l+ma-2]!=0) rez1+=rezz[l-1][l+ma-2];
else{
for(long long i=l-1;i<l+ma-2;i++){
if(rezz[i][l+ma-2]!=0){
rez1+=rezz[i][l+ma-2];
break;
}
rez1+=(i-l+2)*a[i];
rezz[l-1][i] = rez1;
}
}
int rez2 = 0;
for(long long i=r-1;i>r-ma;i--){
rez2+=(r-i)*a[i];
}
int rez = 0;
long long s = pref[r-ma]-pref[l+ma-3];
rez+=s*ma;
rez = rez+rez1+rez2;
v.push_back(rez);
}
if(p){
for(long long i=0;i<v.size()-1;i++) cout<<v[i]<<endl;
cout<<v[v.size()-1];
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |