Pagini recente » Cod sursa (job #2211939) | Cod sursa (job #1784777)
#include <fstream>
#include <iostream>
#include <math.h>
using namespace std;
ifstream ka("datorii.in");
ofstream ki("datorii.out");
const int N_MAX = 15000;
const int SQRT_MAX = 123;
int a, b, c, n, m, x, v[N_MAX + 1], bb[SQRT_MAX + 1];
int main()
{
ka >> n >> m;
int t = (int)sqrt(n) + 1;
for(int i = 1; i <= n; i++)
{
ka >> x;
v[i] = x;
bb[i / t] += x;
}
for(int i = 1; i <= m; i++)
{
ka >> c >> a >> b;
if(c == 1)
{
long long suma = 0;
int j = a;
for(; j % t != 0 && j <= b; j++)
suma += v[j];
//cout << j;
for(; b - j > t; j += t)
suma += bb[j / t];
for(; j <= b; j++)
suma += v[j];
ki << suma << '\n';
}
else
{
v[a] -= b;
bb[a / t] -= b;
}
}
}