fbpx

Problema #1512 – Mars – Rezolvari PBInfo

de Mihai-Alexandru

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;
}
Comentarii

S-ar putea sa iti placa