Pagini recente » Cod sursa (job #2109538) | Cod sursa (job #2071781) | Borderou de evaluare (job #720512) | Cod sursa (job #2051305) | Cod sursa (job #2679366)
#include <fstream>
#define fisier "datorii"
std::ifstream in(fisier ".in");
std::ofstream out(fisier ".out");
int V[20002];
int S(int i) {return i? V[i] + S(i^i&-i): 0;}
int main()
{
int n, m; in >> n >> m;
for (int i = 1; i <= n; i++)
{int e; in >> e; V[i+(i&-i)] += V[i] += e;}
while (m--)
{
bool v; int a, b; in >> v >> a >> b;
if (v) out << S(b) - S(a-1) << '\n';
else for (; a <= n; a += a&-a) V[a] -= b;
}
}