Pagini recente » Cod sursa (job #1517339) | Cod sursa (job #188628) | Cod sursa (job #2276525) | Cod sursa (job #2848247) | Cod sursa (job #936031)
Cod sursa(job #936031)
#include <fstream>
#define ciudatenia(a) (a&(a-1))^a
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int n,m;
int arb[15001];
void modifica(int a,int val) {
while (a<=n)
{
arb[a] += val;
a += ciudatenia(a);
}
}
int datorie(int a,int b) {
int s = 0;
while (b>0)
{
s += arb[b];
b -= ciudatenia(b);
}
while (a>0)
{
s -= arb[a];
a -= ciudatenia(a);
}
return s;
}
int main()
{
fin>>n>>m;
for (int i=1;i<=n;i++)
{
int a;
fin>>a;
modifica(i,a);
}
for (int i=1;i<=m;i++)
{
int a,b,tip;
fin>>tip>>a>>b;
if (tip == 0)
modifica(a,-b);
else
fout<<datorie(a-1,b)<<'\n';
}
return 0;
}