Cod sursa(job #214713)

Utilizator catalina5catalina serban catalina5 Data 15 octombrie 2008 18:37:44
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<iostream>
#include<fstream>

#define form (p^(p-1))&p;

using namespace std;

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

int n,m,a[15001];

void modificare(int p,int k){
    while(p<=n){
        a[p]-=k;
        p+=form;
    }
}

int suma(int p){
    int s=0;
    while(p){
        s+=a[p];
        p-=form;
    }
}

void citire(){
    int nr;
    fin>>n>>m;
    for(int i=1;i<=n;i++){
        fin>>nr;
        nr*=-1;
        modificare(i,nr);
    }
    int tip,x,y;
    for(int i=0;i<m;i++){
        fin>>tip;
        if(tip==0)
            modificare(x,y);
        else
            fout<<suma(y)-suma(x-1)<<"\n";
    }
}

int main(){
    citire();
    fin.close();
    fout.close();
    return 0;
}