Submission #848118

#TimeUsernameProblemLanguageResultExecution timeMemory
848118JoksimKaktusAddk (eJOI21_addk)C++17
92 / 100
1908 ms3388 KiB
#include <bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(0); int n,k; cin >> n >> k; vector <int> v(n+1); vector <long long> pre(n+1); pre[0] = 0; for(int i = 1;i <= n;i++){ cin >> v[i]; pre[i] = pre[i-1] + v[i]; } int q; cin >> q; for(int i = 0;i < q;i++){ int qu,l,r,m; cin >> qu; if(qu == 2){ cin >> l >> r >> m; int rr = r; int ll = l-1; long long sum = 0; for(int j = 0; j < min(m,(r-l)+2-m);j++){ sum += pre[rr] - pre[ll]; ll++; rr--; } cout << sum << "\n"; }else{ vector <int> ind(k); vector <int> res(n+1); for(int i = 0;i < k;i++){ cin >> ind[i]; } for(int i = 0;i < k-1;i++){ int diff = v[ind[i+1]] - v[ind[0]]; res[ind[i]] += diff; res[ind[i+1]] -= diff; } for(int j = ind[0];j <= ind[k-1];j++){ res[j] = res[j-1] + res[j]; pre[j] += res[j]; } } } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...