Pagini recente » Cod sursa (job #1989277) | Cod sursa (job #3258915) | Cod sursa (job #1989282) | Cod sursa (job #2424597) | Cod sursa (job #261461)
Cod sursa(job #261461)
#include<stdio.h>
int a[100005],b[100005];
int n,m;
/*void adunare()
{
}*/
void actualizare(int i,int x)
{int j;
for(j=i;j<=n;j++)
b[j]+=x;
}
void suma(int i,int j)
{
printf("%d \n",(b[j]-b[i-1]));
}
void poz(int k)
{int i,ok=0;
for(i=1;i<=n;i++)
{ if(b[i]==k)
{printf("%d \n",i);ok=1;}
if(b[i]>k)
break;
}
if(ok==0)
printf("-1 \n");
}
int main()
{int i;
int x,y,z;
freopen("aib.in","r",stdin);
freopen("aib.out","w",stdout);
scanf("%d %d",&n,&m);
scanf("%d",&x);
a[1]=x;
b[1]=x;
for(i=2;i<=n;i++)
{scanf("%d",&x);
a[i]=x;
b[i]+=b[i-1]+x;
}
for(i=0;i<m;i++)
{
scanf("%d",&x);
if(x==0)
{scanf("%d %d",&y,&z);
actualizare(y,z);
}
if(x==1)
{ scanf("%d %d",&y,&z);
suma(y,z);
}
if(x==2)
{scanf("%d",&y);
poz(y);
}
}
return 0;
}