Files
cses/CSES - CSES Problem Set/Range_Queries/Range_Update_Query.cpp
DarianTr 6df87160fe a
2024-06-18 16:14:25 +02:00

38 lines
718 B
C++

//
// Created by darian on 18.06.24.
//
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
void update_range(int a, int b, ll k, vector<ll> &dif) {
dif[a] += k;
if (b != dif.size() - 1) {
dif[b+1] -= k;
}
}
int main() {
int n, q; cin >> n >> q;
vector<ll> input(n);
vector<ll> 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);
}
}
}