Cod sursa(job #3256388)
| Utilizator | Data | 14 noiembrie 2024 13:32:38 | |
|---|---|---|---|
| Problema | Arbori indexati binar | Scor | 40 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 1.05 kb |
#include <fstream>
#define NMAX 100002
using namespace std;
ifstream fin("aib.in");
ofstream fout("aib.out");
int N,M,v[NMAX];
long long s;
void citire()
{
fin>>N>>M;
for(int i=1; i<=N; i++)
{
fin>>v[i];
}
}
int main()
{
int poz,op,a,b;
long long sum;
citire();
for(int i=1; i<=M; i++)
{
fin>>op;
if(op==0)
{
fin>>a>>b;
v[a]+=b;
}
if(op==1)
{
fin>>a>>b;
s=0;
for(int j=a; j<=b; j++)
{
s+=v[j];
}
fout<< s << "\n";
}
if(op==2)
{
fin>>s;
poz=-1;
sum=0;
for(int j=1; j<=N && sum<=s; j++)
{
sum+=v[j];
if(sum==s)
{
poz=j;
break;
}
}
fout<< poz << "\n";
}
}
return 0;
}
