Cod sursa(job #2904224)

Utilizator florina15Florina florina15 Data 17 mai 2022 22:43:11
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("datorii.in");
ofstream g("datorii.out");

int arb[400001], n;


void modificare(int p, int x)
{
    for(int i = p; i <= n; i+= i&(-i))
        arb[i] += x;


}
int suma(int p)
{

    int sum = 0;
    for(int i = p;i > 0;i -= i&(-i))
        sum+= arb[i];
    return sum;


}
int main()
{
    int  m, x, operatie, nr1, nr2;
    f>>n>>m;
    for(int i=1;i<=n;i++)
    {

        f>>x;
        modificare(i, x);
    }
    for(int i=1; i<=m; i++)
    {

        f>>operatie>>nr1>>nr2;
        if(!operatie)
            modificare(nr1,-nr2);
        else
        {
            g<<suma(nr2)-suma(nr1-1)<<endl;
        }
    }
     return 0;

}