Submission #1295304

#TimeUsernameProblemLanguageResultExecution timeMemory
1295304uytfghjklAddk (eJOI21_addk)C++20
0 / 100
30 ms1916 KiB
// Generated by AI. #include <bits/stdc++.h> using namespace std; struct Fenwick { int n; vector<long long> bit; Fenwick(int n) : n(n), bit(n + 1, 0) {} void update(int i, long long delta) { for (; i <= n; i += i & -i) bit[i] += delta; } long long query(int i) { long long s = 0; for (; i > 0; i -= i & -i) s += bit[i]; return s; } long long range(int l, int r) { if (l > r) return 0; return query(r) - query(l - 1); } }; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N, K; cin >> N >> K; vector<long long> A(N + 1); for (int i = 1; i <= N; i++) cin >> A[i]; Fenwick FT1(N), FT2(N); for (int i = 1; i <= N; i++) { FT1.update(i, A[i]); FT2.update(i, A[i] * i); } int Q; cin >> Q; while (Q--) { int type; cin >> type; if (type == 1) { vector<int> idx(K); for (int i = 0; i < K; i++) cin >> idx[i]; long long first = A[idx[0]]; for (int i = 0; i < K - 1; i++) { long long oldv = A[idx[i]]; long long newv = A[idx[i + 1]]; A[idx[i]] = newv; FT1.update(idx[i], newv - oldv); FT2.update(idx[i], (newv - oldv) * idx[i]); } long long oldv = A[idx[K - 1]]; long long newv = first; A[idx[K - 1]] = newv; FT1.update(idx[K - 1], newv - oldv); FT2.update(idx[K - 1], (newv - oldv) * idx[K - 1]); } else { int l, r, m; cin >> l >> r >> m; int L1 = l; int R1 = l + m - 1; int L2 = l + m; int R2 = r - m + 1; int L3 = r - m + 2; int R3 = r; long long ans = 0; if (L1 <= R1) { long long sumA = FT1.range(L1, R1); long long sumAi = FT2.range(L1, R1); ans += sumAi - 1LL * (L1 - 1) * sumA; } if (L2 <= R2) { long long sumA = FT1.range(L2, R2); ans += 1LL * m * sumA; } if (L3 <= R3) { long long sumA = FT1.range(L3, R3); long long sumAi = FT2.range(L3, R3); ans += 1LL * (r + 1) * sumA - sumAi; } cout << ans << "\n"; } } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...