Pagini recente » Cod sursa (job #2339641) | Cod sursa (job #1349283) | Cod sursa (job #2514776) | Cod sursa (job #2087061) | Cod sursa (job #2379215)
#include <fstream>
using namespace std;
int arb[100002],v[100002];
int main()
{
int n,m,s,d,a,b,op,mij;
ifstream in("aib.in");
ofstream out("aib.out");
in>>n>>m;
for(int i=1;i<=n;i++)
{
in>>arb[i];
v[i]=arb[i];
v[i]+=v[i-1];
}
for(int i=1;i<=m;i++)
{
in>>op;
if(op==0)
{
in>>a>>b;
arb[a]+=b;
for(int j=a;j<=n;j++)
v[j]+=b;
}
if(op==1)
{
in>>a>>b;
s=0;
for(int j=a;j<=b;j++)
s+=arb[j];
out<<s<<"\n";
}
if(op==2)
{
in>>a;
s=1;
d=n;
while(s<=d)
{
mij=(s+d)/2;
if(v[mij]==a)
{
out<<mij<<"\n";
break;
}
else
{
if(a<v[mij])
d=mij-1;
else
s=mij+1;
}
}
}
}
return 0;
}