Cod sursa(job #3258696)

Utilizator FabioBreaban Fabio Fabio Data 23 noiembrie 2024 12:55:58
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>
#define zeros(x) ( (x ^ (x - 1)) & x )

using namespace std;

ifstream cin("datorii.in");
ofstream cout("datorii.out");

const int MAXN = 15005;

int n, m;
int a[MAXN];

void add(int x, int q)
{
    for (int i = x; i <= n; i += (i&-i))
        a[i] += q;
}

int Compute(int x)
{
    int ret = 0;

    for (int i = x; i > 0; i-=(i&-i)){
        ret += a[i];
        }
    return ret;
}

int main()
{
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
    {
        int val;
        cin >> val;
        add(i, val);
    }
        
    
    for (int i = 1; i <= m; i++)
    {
        int x;
        cin >> x;
        if (x == 0)
        {
            int t, v;
            cin >> t >> v;
            add(t, v * (-1));
            for (int i = 1; i <= n; i++)
                cout << a[i] << ' ';
            cout << '\n';
        }
        else if (x == 1)
        {
            int p, q;
            cin >> p >> q;
            cout << Compute(q) - Compute(p - 1) << '\n';
        }
    }
    return 0;
}