Cod sursa(job #228375)
| Utilizator | Data | 7 decembrie 2008 00:12:31 | |
|---|---|---|---|
| Problema | Arbori indexati binar | Scor | 0 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 1.01 kb |
#include <stdio.h>
int V[100110];
int N,M,i,j,s,ok,a,b,x,poz;
int main()
{
freopen("aib.in","r",stdin);
freopen("aib.out","w",stdout);
scanf("%d %d", &N,&M);
for (i=1;i<=N;++i)
scanf("%d", V+i);
for (j=1;j<=M;++j)
{
scanf("%d %d", &x,&a);
if (x==0)
{
scanf("%d",&b);
V[a]=b;
}
else
if (x==1)
{
scanf("%d",&b);
s=0;
for (i=a;i<=b;++i)
s+=V[i];
printf("%d\n", s);
}
else
if (x==2)
{
s=0;
poz=0;
for (i=1;i<=N;++i)
{
s+=V[i];
if (s==a)
poz=i;
}
if (poz!=0) printf("%d\n",poz);
else printf("-1\n");
}
}
return 0;
}
