# PBinfo #1512 – mars – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Cerința
Se consideră un tablou unidimensional cu n elemente numere întregi, numerotate de la 1 la n, inițial toate nule. Asupra tabloului se fac m operații s d X cu semnificația: toate elementele cu indici cuprinși între s și d își măresc valoarea cu X.

Să se afișeze tabloul după realizarea celor m operații.

Date de intrare
Programul citește de la tastatură numerele n m, iar apoi m triplete s d X, cu semnificația din enunț.

Date de ieșire
Programul va afișa pe ecran cele n elemente ale tabloului, separate prin exact un spațiu.

Restricții și precizări

1 ≤ n ≤ 200.000
1 ≤ m ≤ 200.000
1 ≤ s ≤ d ≤ n
-1000 ≤ X ≤ 1000

Exemplu:
Intrare

10 6
8 10 2
3 10 -3
5 9 7
5 5 5
6 7 2
1 1 -1
Ieșire

-1 0 -3 -3 9 6 6 6 6 -1

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
long long int n, v[200001] = {0}, T, x, y, P, S = 0, smen[200002];
int main() {
    cin >> n >> T;
    for (int t = 1; t <= T; ++t) {
        cin >> x >> y >> P;
        smen[x] = smen[x] + P;
        smen[y + 1] = smen[y + 1] - P;
    } for (int i = 1; i <= n; ++i) {
        S = S + smen[i];
        v[i] = v[i] + S;
        cout << v[i] << " ";
    } return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/1512)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/1512/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-1512/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
