Cod sursa(job #1075541)

Utilizator Edward2012Eduard Ursinschi Edward2012 Data 9 ianuarie 2014 09:25:29
Problema Arbori indexati binar Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>

using namespace std;
ifstream f("aib.in");
ofstream g("aib.out");
int v[100000],v1[100000],a,b,x,k,m,p,ok;
long N,M,i,j;
int main()
{f>>N>>M;
 for(i=1;i<=N;i++) {f>>v[i];v1[i]=v[i]+v1[i-1];}
 for(i=1;i<=M;i++) {f>>x;
                    switch(x){
                    case 0:{f>>a>>b;

                            v[a]=v[a]+b;
                            for(j=a;j<=N;j++)v1[j]=v1[j]+b;break;}
                    case 1:{f>>a>>b;if(a!=b)g<<v1[b]-v1[a-1]<<'\n';
                                     else g<<v[a]<<'\n';break;}
                    case 2:{f>>a;ok=0;for(j=1;j<=N;j++)if(v1[j]==a){k=j;g<<k<<'\n';ok=1;}if(ok==0)g<<-1<<'\n';break;}
                    }
 }


    return 0;
}