Решение задачи Маргарита и лучший подарок с Codeforces

Без пояснения   Просмотров: 24


Маленькая девочка Маргарита — большая любительница спортивного программирования. Особенно она любит задачи про массивы и запросы к ним.

Недавно ей подарили массив a размером в 109 элементов, который заполнен следующим образом:

a1=−1
a2=2
a3=−3
a4=4
a5=−5
И так далее...
То есть значение i-го элемента массива a вычисляется по формуле ai=i⋅(−1)i.

Она сразу же придумала q запросов к этому массиву. Каждый запрос задаётся двумя числами: l и r. Ответом на запрос является сумма всех элементов массива на позициях от l до r включительно.

Маргарита очень хочет узнать ответ на каждый из запросов. Вручную она это всё считать не хочет, но и программу, решающую задачу, к сожалению, написать не смогла. Она обратилась к вам — лучшему программисту.

Помогите ей найти ответы!

Код

#include <bits/stdc++.h>
using namespace std;

long long  q, l, r, a, b;

long long bod (long long x){
	a = (x + 1)/2;
	b = x/2;
	return (b + 1) * b - a * a;
}

int main (){
	cin >> q;
	while (q--){
		cin >> l>> r;
		cout << bod(r) - bod(l - 1)<<endl; 
	}
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться