Cod sursa(job #1310600)

Utilizator AeroHHorea Stefan AeroH Data 6 ianuarie 2015 23:41:37
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <iostream>
#include <vector>
#include <cmath>
#include <ctime>
#include <cstdio>
#include <queue>
#include <set>
#include <map>
#include <fstream>
#include <cstdlib>
#include <string>
#include <cstring>
#include <algorithm>
#include <numeric>
#define ll long long int
#define punct pair<ll,ll>
#define mp make_pair
#define MOD 10000007
#define NMAX 505
using namespace std;

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

int n,Q,i,j,v[15001],s,t,x,y;

int main()
{
    f>>n>>Q;
    for(i=1;i<=n;++i)
        {
            f>>t;
            for(j=i;j<=n;j+=j&-j)
                v[j]+=t;

        }
    while(Q--)
        {
            f>>t;
            if (t==0)
                {
                    f>>x>>y;
                    for (i=x;i<=n;i+=i&-i)
                        v[i]-=y;

                }
            else
                {
                      f>>x>>y;s=0;
                    for (i=y;i;i-=i&-i)
                        s+=v[i];
                    for (i=x-1;i;i-=i&-i)
                        s-=v[i];
                    g<<s<<'\n';
                }
        }


    return 0;
}