Submission #1172849

#TimeUsernameProblemLanguageResultExecution timeMemory
1172849dbekarysAddk (eJOI21_addk)C++20
0 / 100
9 ms864 KiB
#include <iostream> #include <vector> using namespace std; // Function to update the array directly void update(vector<int>& arr, int idx, int value) { arr[idx] = value; } // Function to calculate the sum of subsequences using prefix sums long long sum_of_subsequences(vector<long long>& prefix, int l, int r, int m) { long long result = 0; for (int i = l; i <= r - m + 1; ++i) { result += prefix[i + m] - prefix[i]; } return result; } int main() { int N, Q; cin >> N >> Q; vector<int> A(N + 1); // Use 1-based indexing for (int i = 1; i <= N; ++i) { cin >> A[i]; } // Precompute prefix sums vector<long long> prefix(N + 1, 0); for (int i = 1; i <= N; ++i) { prefix[i] = prefix[i - 1] + A[i]; } while (Q--) { int type; cin >> type; if (type == 1) { int idx, value; cin >> idx >> value; // Update the array and recompute prefix sums A[idx] = value; for (int i = idx; i <= N; ++i) { prefix[i] = prefix[i - 1] + A[i]; } } else if (type == 2) { int l, r, m; cin >> l >> r >> m; cout << sum_of_subsequences(prefix, l - 1, r, m) << endl; } } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...