Cod sursa(job #540306)

Utilizator alex@ndraAlexandra alex@ndra Data 23 februarie 2011 21:17:37
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
//DATORII
#include<fstream>
using namespace std;
#define zeros(x) ( (x ^ (x - 1)) & x )
  
int main()
{
    int n, m, a[15001], cod, i, val, ind,j, st, dr, s1, s2;
     ifstream f("datorii.in");
        f>>n>>m;
        
     for(i=1;i<=n;i++)
        f>>a[i];
     
     ofstream g("datorii.out");
       
     for(i=1;i<=m;i++)
       {
          f>>cod;
          
          if(cod==0)
           {
             f>>ind>>val;
             
             for(j=ind;j<=n;j+=zeros(j))
                a[j]+=val;
           }
          else
            {
              f>>st>>dr;
              
              s1=0;
              for(j=dr;j>0;j-=zeros(j))
                 s1+=a[j];
                 
              s2=0;
              for(j=st-1;j>0;j-=zeros(j))
                  s2+=a[j];
                  
              g<<s1-s2<<"\n";
            }
       } 
       
     f.close();
     g.close();        
    return 0;
}