Cod sursa(job #3175933)

Utilizator YuzukyIstrate Andreea Ruxandra Yuzuky Data 26 noiembrie 2023 15:55:43
Problema Arbori indexati binar Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.08 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("aib.in");
ofstream out("aib.out");
const int MAX = 100000;
int v[MAX+1], s[MAX+1];
void sume(int &a, int b, int n)
{
    v[a]=v[a]+b;
    s[1]=v[1];
    for(int i=2; i<=n; ++i)
      s[i]=s[i-1]+v[i];
}
int main()
{
    int n,m;
    in>>n>>m;
    for(int i=1; i<=n; ++i)
      in>>v[i];
    s[1]=v[1];
    for(int i=2; i<=n; ++i)
      s[i]=s[i-1]+v[i];

    //for(int i=1; i<=n; ++i)
      //cout<<s[i]<<" ";
    //cout<<'\n';
    int a,b,c;
    for(int i=0; i<m; ++i)
    {
      in>>c;
      if(c==0)
      {
        in>>a>>b;
        sume(a,b,n);
      //  for(int i=1; i<=n; ++i)
        //  cout<<s[i]<<" ";
        //cout<<'\n';
    }
    else if(c==1)
    {
      in>>a>>b;
      out<<s[b]-s[a-1]<<'\n';
    }
    else
    {
        in>>a;
        int j,ok=0;
        for(j=1; j<=n && ok==0; ++j)
        {
          if(s[j]==a)
            ok=j;
        }
        if(ok==0)
          out<<-1<<'\n';
        else
          out<<ok<<'\n';
    }
  }
  return 0;
}