描述
有一天,旅行者和派蒙来到了一个未知的世界。这个世界充满了奇幻的景色和令人迷失的迷宫。他们决定一起探索这个神秘的地方,希望寻找宝藏和解开谜题。
当他们穿越迷宫的时候,他们突然来到了一个巨大的房间。房间的中央有一个巨大的石头柱子,上面镶嵌着奇怪的符号和图案,上面写着:
long long dfs(int l, int r) {
if(l > r) return 0;
if(l == r) return r;
if(l != r) {
int mid = (l + r) / 2;
return dfs(l, mid) + dfs(mid + 1, r);
}
}
派蒙观察了一会儿,然后惊叹道:“这是一道编程迷题,旅行者!我们必须解开这个谜题来继续前进。”
旅行者和派蒙开始思考如何解密柱子上的编程迷题。他们发现符号和图案之间存在着一定的规律和关联,只有正确理解和编码这些规律,才能解开谜题。他们深入研究了编程概念和算法,试图找到解决方案。
他们在纸上画出了一些图表和表格,尝试了各种编程逻辑和技巧。随着他们的努力,柱子上的编程迷题似乎渐渐显示出线索和解法的蛛丝马迹。他们经过不断的尝试和调整,试图找到符合迷题规则的正确编码序列。
经过旅行者和派蒙的研究,他们发现有 T 次询问,每次询问都会给两个数字,表示 l 和 r ,但每次询问都必须快速给出答案,这对派蒙的智力来说有些困难,你能帮助旅行者和派蒙解开这个迷题,继续他们的冒险吗?
输入描述
第一行一个数字 T,T≤105
接下来 T 行,每行两个数字,表示给定的 l,r
其中 1≤l≤r≤109
输出描述
每行输出一个数字,表示一个询问的答案
样例输入 1
1 1 1
样例输出 1
1
样例输入 2
2 1 4 3 5
样例输出 2
10 12
#include <bits/stdc++.h>
using namespace std;
long long sum(long long n){
return n*(n+1)/2;
}
int main(){
int T;
cin>>T;
while(T--){
int l,r;
cin>>l>>r;
cout<<sum(r)-sum(l-1)<<endl;
}
return 0;
}