Cod sursa(job #1846890)

Utilizator tanyafTanya Foransbergher tanyaf Data 14 ianuarie 2017 09:18:33
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>

using namespace std;
ifstream f ("datorii.in");
ofstream g ("datorii.out");
int i,n,m,j,s,p,q,t,v,aib[15003],a[15003];
char c;
int ub (int i)
{
    return i&(-i);
}
void add (int i,int x)
{
    int j;
    for(j=i; j<=n; j+=ub(j))
        aib[j]+=x;
}
int sum (int x)
{
    int i;
    s=0;
    for(i=x; i>0; i-=ub(i))
        s+=aib[i];
    return s;
}
int main()
{
    f>>n;f>>m;
    for(i=1; i<=n; i++)
    {
        f>>a[i];
        add(i,a[i]);
    }

    for(i=1; i<=m; i++)
    {
        f>>c;
        if(c=='0')
        {
            f>>t>>v;
            add(t,-v);

        }
        else
        {
           f>>p>>q;
           s=sum(q)-sum(p-1);
           g<<s<<'\n';
        }
    }

    return 0;
}