Cod sursa(job #261577)

Utilizator redkar23Dezactiveazama redkar23 Data 18 februarie 2009 15:04:34
Problema Arbori indexati binar Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 1.14 kb
#include <fstream>

using namespace std;

fstream f;
fstream g;

int n;
int a[100001];
int i;
int m;
int x,b,c;


void sum(int b,int c)
{
    int sum=0;
    for(x=b;x<=c;x++) 
      sum+=a[x];
    g << sum << "\n";  
}

void pozitie(int b)
{
   int sum=0;
   for(x=1;x<=n+1;x++)
     if(sum<b) 
       sum+=a[x];
     else
       if(sum==b)
         {
                 g << x-1 << "\n";
                 break;
         }
       else
         if(sum>b||sum<b&&x==n+1)
           {
                 g << "-1\n";
                 break;
         } 
         
}

int main()
{
    f.open("aib.in",fstream::in);
    f>> n >> m;
    for(i=1;i<=n;i++)
      f >> a[i];    
    
    g.open("aib.out",fstream::out);
    for(i=0;i<m;i++)
    {
       f >> x;
       switch(x)
       {
         case 0:
             f>> b >> c;
            a[b]+=c;
            break;
         case 1:
              f >> b >> c;
            sum(b,c);
            break;
         case 2:         
            f >> b;
            pozitie(b);
       }                
    }      
    g.close();
          
    return 0;
}