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 valoare 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
#include <bits/stdc++.h> using namespace std; int a[200001]; int main() { int n , m; cin >> n >> m; int st , dr , x; for(int i = 1 ; i <= m ; ++i) { cin >> st >> dr >> x; a[st]+=x , a[dr+1]-=x; } for(int i = 2 ; i <= n ; ++i) a[i]+=a[i-1]; for(int i = 1 ; i <= n ; ++i) cout << a[i] << ' '; return 0; }