Pagini recente » Cod sursa (job #1580669) | Cod sursa (job #699446) | Cod sursa (job #815683) | Cod sursa (job #2082923) | Cod sursa (job #401998)
Cod sursa(job #401998)
#include<fstream.h>
ifstream fin("aib.in");
ofstream fout("aib.out");
int a[100005],b[100005];
long n,m,i,j,x,y,kappa,k;
int c;
/*long cautare (int x)
{
long dr,st;
st=1;
dr=n;
while(st<dr)
{
if (b[(st+dr)/2]==x) return (st+dr)/2;
if (x>b[(st+dr)/2]) st=(st+dr)/2;
if (x<b[(st+dr)/2]) dr=(st+dr)/2;
if (b[st]==x) return st;
if (b[dr]==x) return dr;
}
return -51;
}
*/
int main()
{fin>>n>>m;
fin>>a[1];
b[1]=a[1];
b[0]=0;
for (i=2;i<=n;i++)
{
fin>>a[i];
b[i]=a[i]+b[i-1];
}
for (kappa=1;kappa<=m;kappa++)
{
fin>>c;
if (c==0)
{
fin>>x>>y;
a[x]+=y;
for (i=x;i<=y;i++)
b[i]+=y;
}
if (c==1)
{
fin>>x>>y;
fout<<b[y]-b[x-1]<<'\n';
}
if (c==2)
{
fin>>x; k=0;
while (x!=b[k])
k++;
fout<<k<<'\n';
}
}
fout.close();
return 0;
}