Pagini recente » Cod sursa (job #2690692) | Cod sursa (job #1707845) | Cod sursa (job #2233208) | Cod sursa (job #2589226) | Cod sursa (job #3138731)
#include <fstream>
using namespace std;
ifstream cin ("datorii.in");
ofstream cout ("datorii.out");
int zile , arbore[15001];
int Suma (int indice)
{
int suma = 0;
while (indice) {
suma += arbore[indice];
indice -= (indice & -indice);
}
return suma;
}
void Update (int indice , int valoare)
{
while (indice <= zile) {
arbore[indice] += valoare;
indice += (indice & -indice);
}
}
int main ()
{
int operatii;
cin >> zile >> operatii;
for (int indice = 1 , valoare ; indice <= zile ; indice++)
cin >> valoare , Update(indice , valoare);
for (int indice = 1 , tip ; indice <= operatii ; indice++)
{
cin >> tip;
if (tip == 0) {
int zi , valoare;
cin >> zi >> valoare;
Update(zi , -valoare);
}
else {
int stanga , dreapta;
cin >> stanga >> dreapta;
cout << Suma(dreapta) - Suma(stanga - 1) << '\n';
}
}
cout.close(); cin.close();
return 0;
}