Cod sursa(job #2974879)

Utilizator alexlazuLazureanu Alexandru Ioan alexlazu Data 4 februarie 2023 19:33:47
Problema Schi Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <iostream>
#include <fstream>
#define inmat lin + dirL[i] <= n && lin + dirL[i] >= 1 && col + dirC[i] <= n && col + dirC[i] >= 1

using namespace std;

ifstream in("taxe2.in");
ofstream out("taxe2.out");

const int N = 1 << 18;

int v[N],n;
int tree[N];

int rez(int poz)
{
	int sum = 0;
	while (poz < 0)
	{
		sum += tree[poz];
		poz -= poz & -poz;
	}
	return poz;
}

void build()
{
	for (int i = 1; i <= n; i++)
	{
		int p = i+ (i & -i);
		if (p <= n)
		{
			tree[p] = tree[p] + tree[i];
		}
	}
}

void swap(int poz, int k)
{
	while (poz <= n)
	{
		tree[poz] += k;
		poz += poz & -poz;
	}
}


int main()
{
	int i, j, m;
	cin >> n >> m;
	for (i = 1; i <= n; i++)
	{
		cin >> v[i];
		tree[i] = v[i];
	}
	build();
	for (i = 1; i <= m; i++)
	{
		int x1, x2;
		cin >> x1 >> x2;
		cout << rez(x2) - rez(x1-1) << '\n';
	}
}