Pagini recente » preONI 2006 (Runda 1) | Cod sursa (job #37339) | Rating Claudiu Nicola (ClaudiuNicola) | Cod sursa (job #2261309) | Cod sursa (job #86917)
Cod sursa(job #86917)
#include<fstream.h>
#include<math.h>
int n, a[15000], v, t, p, q, ok;
long long m;
int main()
{
int j, s, poz,s2;
long i;
ifstream in("datorii.in");
ofstream out("datorii.out");
in>>n>>m;
for (j=1; j<=n; j++)
in>>a[j];
for (i=1; i<=m; i++)
{
in>>ok;
if (ok==0)
{
in>>t>>v;
poz=0;
while (t<=n)
{
a[t]+=v;
while(t==0 && pow(2,poz) == 0)
poz++;
t+=pow(2,poz);
poz++;
}
}
else
{
in>>p>>q;
s=0; poz=0;
while(p>0)
{
s+=a[p];
while (p==0 && pow(2,poz)==0)
poz++;
p-=pow(2,poz);
poz++;
}
q-=1;
s2=0;
poz=0;
while (q>0)
{
s2+=a[q];
while (q==0 && pow(2,poz)==0) poz++;
q-=pow(2,poz);
poz++;
}
out<<s-s2<<'\n';
}
}
in.close();
out.close();
return 0;
}