Pagini recente » Cod sursa (job #3154793) | Cod sursa (job #1470733) | Cod sursa (job #890406) | Cod sursa (job #123542) | Cod sursa (job #213925)
Cod sursa(job #213925)
//aib
#include <fstream>
#define loop ((poz^(poz-1))&poz)
using namespace std;
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
int sir[15001];
int n,m;
void update(int poz,int val)
{
while (poz<=n)
{
sir[poz]-=val;
poz+=loop;
}
}
int suma (int poz)
{
int S=0;
while (poz>0)
{
S+=sir[poz];
poz-=loop;
}
return S;
}
void citire()
{
int val;
fin>>n>>m;
for (int i=0;i<n;i++)
{
fin>>val;
update(i+1,-val);
}
int ok,a,b;
for (int i=0;i<m;i++)
{
fin>>ok>>a>>b;
if (ok==0)
{
update(a,b);
}
else
{
fout<<suma(b)-suma(a-1)<<"\n";
}
}
}
int main ()
{
citire();
return 0;
}