Cod sursa(job #425998)

Utilizator stefan92alexandru stefan stefan92 Data 26 martie 2010 12:41:31
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<iostream.h>
#include<fstream.h>


fstream f("datorii.in",ios::in);
fstream g("datorii.out",ios::out);

int n, m; 
 int b[15000];

 int query(int x) 
{int r = 0; 
    
while ( x ) 
       
r += b[x], x -= (x&(x-1))^x; 
 return r; 
} 
 
 
void update(int x, int val) 
{     
while ( x <= n ) 
b[x] += val, x += (x&(x-1))^x; 
} 
 
 
void goAIB() 
{ 
    
int a, c, d; 
    
for ( int i = 1; i <= n; ++i ) 
       
{f>>a; update(i, a);} 
 
 
    
for ( int i = 1; i <= m; ++i ) 
    
{ 
        
f>>a>>c>>d; 
        
if ( a ) 
            
g<<query(d) - query(c-1)<<endl; 
        
else
          
update(c, -d); 


}}
int main()
{f>>n>>m; 
goAIB();
return 0;}