Cod sursa(job #228371)
Utilizator | Data | 7 decembrie 2008 00:05:53 | |
---|---|---|---|
Problema | Arbori indexati binar | Scor | 0 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 1.09 kb |
#include <stdio.h>
int V[100110];
int N,M,i,j,s,ok,a,b,x;
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);
while(--M)
{
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)
{
ok=0;
s=0;
for (i=1;i<=N&&!ok;++i)
{
s+=V[i];
if (s==a)
{
ok=1;
break;
}
}
if (ok) printf("%d\n",i);
else printf("-1\n");
}
}
return 0;
}