Cod sursa(job #2624260)

Utilizator grecub2000Grecu Bogdan grecub2000 Data 4 iunie 2020 17:26:34
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int v[15100];
int n;

int t(int x)
{
    return x & (-x);
}
void inserare(int x, int y)
{
    for (int i = x; i <= x; i += t(i))
    {
        v[i] += y;
    }
}
int suma (int x)
{
    int s = 0;

    for (int i = x; i > 0; i -= t(i))
    {
        s += v[i];
    }
    return s;
}

int main()
{
    int m, nr, k, x, y;
    f >> n >> m;
    for (int i = 1; i <= n; ++i)
    {
        f >> nr;
        inserare(i, nr);
    }
    for (int i=0; i < m; i++)
    {
        f >> k >> x >> y;
        if (k == 0)
        {
            inserare(x, -y);
        }
        if (k == 1)
        {
            g <<  suma(y) - suma(x - 1) << "\n";
        }
    }

    return 0;
}