Cod sursa(job #3133830)

Utilizator sara_ionescu21Ionescu Sara sara_ionescu21 Data 27 mai 2023 01:27:43
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("datorii.in");
ofstream fout("datorii.out");

const int MAX_N = 1000001;

int d[MAX_N];
int n, m;
int t, p1, p2;
int s;

int interog(int p)
{
    int sum = 0;
    for (int i = p; i > 0; i -= (i & -i))
        sum += d[i];
    return sum;
}

void actualizeaza(int p, int x)
{
    for (int i = p; i <= n; i += (i & -i))
        d[i] += x;
}

int main()
{

    fin >> n >> m;

    for (int i = 1; i <= n; i++)
    {
        fin >> s;
        actualizeaza(i, s);
    }

    for (int i = 1; i <= m; i++)
    {
        fin >> t >> p1 >> p2;

        if (t == 0)
        {
            actualizeaza(p1, -p2);
        }

        else if (t == 1)
        {
            fout << interog(p2) - interog(p1 - 1) << "\n";
        }
    }

    return 0;
}