제출 #1172737

#제출 시각아이디문제언어결과실행 시간메모리
1172737manowoAddk (eJOI21_addk)C++20
0 / 100
390 ms2072 KiB
#include <bits/stdc++.h> #define int long long using namespace std; const int N = 2e5 + 2; const int inf = 1e15; const int mod = 1e9 + 7; int T = 1, a[N], t[4 * N] , p[N]; void build(int v, int tl, int tr) { if (tl == tr) { t[v] = a[tl]; return; } int mid = (tl + tr) / 2; build(v + v, tl, mid); build(v + v + 1, mid + 1, tr); t[v] = t[v + v] + t[v + v + 1]; } void upd(int v, int tl, int tr, int pos, int x) { if (tl == tr) { t[v] = x; return; } int mid = (tl + tr) / 2; if (pos <= mid) upd(v + v, tl, mid, pos, x); else upd(v + v + 1, mid + 1, tr, pos, x); t[v] = t[v + v] + t[v + v + 1]; } signed main() { int n, k; cin >> n >> k; for (int i = 0; i < n; i++) { cin >> a[i]; } p[0] = 0; for (int i = 1; i <= n; i++) { p[i] = p[i - 1] + a[i - 1]; } int q; cin >> q; while (q--) { int type; cin >> type; if (type == 1) { int pos, x; cin >> pos >> x; a[pos] = x; upd(1, 0, n - 1, pos, x); continue; } else { int l, r, m; cin >> l >> r >> m; int sum = 0; for (int i = l + m - 1; i <= r; i++) { sum += p[i] - p[i - m]; } cout << sum << endl; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...