Cod sursa(job #3136638)
| Utilizator | Data | 7 iunie 2023 12:02:30 | |
|---|---|---|---|
| Problema | Datorii | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.71 kb |
#include <fstream>
using namespace std;
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
int n,m,i,a,b,aib[15001],ch,poz,x;
void update (int i)
{
for (; i<=n; i+=(i&-i))
aib[i]+=x;
}
int query (int i)
{
int sum=0;
for (; i>0; i-=(i&-i))
sum+=aib[i];
return sum;
}
int main ()
{
fin>>n>>m;
for (i=1; i<=n; i++)
{
fin>>x;
update (i);
}
for (i=1; i<=m; i++)
{
fin>>ch;
if (ch==0)
{
fin>>poz>>x;
x=-x;
update (poz);
}
else
{
fin>>a>>b;
fout<<query (b)-query (a-1)<<"\n";
}
}
return 0;
}
