Pagini recente » Clasament simulareoji_2006_11-12 | Cod sursa (job #1240326) | Cod sursa (job #1145104) | Rating Bostan Alexandru Ionut (ooflul) | Cod sursa (job #3247148)
#include <fstream>
using namespace std;
ifstream in;
ofstream out;
int n, m, aib[15005];
void update(int i, int x)
{
while (i <= n)
{
aib[i] += x;
i += i & -i;
}
}
int sp(int i)
{
int r = 0;
while (i > 0)
{
r += aib[i];
i -= i & -i;
}
return r;
}
int main()
{
in.open("datorii.in");
out.open("datorii.out");
in >> n >> m;
for (int i = 1; i <= n; i++)
{
int x;
in >> x;
update(i, x);
}
for (int i = 0; i < m; i++)
{
int c, a, b;
in >> c >> a >> b;
if (c == 0)
{
update(a, -b);
}
if (c == 1)
{
out << sp(b) - sp(a-1) << "\n";
}
}
return 0;
}