From 6df87160fe3da9651abdb905c097cc9f07d7456b Mon Sep 17 00:00:00 2001 From: DarianTr Date: Tue, 18 Jun 2024 16:14:25 +0200 Subject: [PATCH] a --- .../Range_Queries/Range_Update_Query.cpp | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 CSES - CSES Problem Set/Range_Queries/Range_Update_Query.cpp diff --git a/CSES - CSES Problem Set/Range_Queries/Range_Update_Query.cpp b/CSES - CSES Problem Set/Range_Queries/Range_Update_Query.cpp new file mode 100644 index 0000000..350dabd --- /dev/null +++ b/CSES - CSES Problem Set/Range_Queries/Range_Update_Query.cpp @@ -0,0 +1,38 @@ +// +// Created by darian on 18.06.24. +// + +#include +using namespace std; +using ll = long long; + + + +void update_range(int a, int b, ll k, vector &dif) { + dif[a] += k; + if (b != dif.size() - 1) { + dif[b+1] -= k; + } +} + + +int main() { + int n, q; cin >> n >> q; + vector input(n); + vector difference; + for (auto &e: input){ + cin >> e; + if (difference.size()) difference.push_back(e - input.back()); + else difference.push_back(e); + } + + for (int i{}; i < q; i++) { + int t; cin >> t; + if (t == 1) { + int a, b; ll u; cin >> a >> b >> u; + a--; b--; + update_range(a, b, u, difference); + } + } + +} \ No newline at end of file