题解:P10416 [蓝桥杯 2023 国 A] XYZ
一道大水题。
首先考虑无解。阅读题面,首先我们可以发现,
进一步观察,我们可以发现对于任意一个不小于
这是啥?等差数列求和啊!首项为
附上代码:
#include<bits/stdc++.h>
#define int long long
#define il inline
#define pii pair<int,int>
#define mk make_pair
#define mod 20123
using namespace std;
il int rd(){
int jya=0,tl=1;char jyt=getchar();
while(!isdigit(jyt)){if(jyt=='-')tl=-1;jyt=getchar();}
while(isdigit(jyt)){jya=jya*10+(jyt-'0');jyt=getchar();}
return jya*tl;
}
il void wr(int jjy){
if(jjy<0)putchar('-'),jjy=-jjy;
if(jjy>9)wr(jjy/10);
putchar(jjy%10+48);
}
il int max(int x,int y){return x>=y?x:y;}
il int min(int x,int y){return x<=y?x:y;}
const int JYAAKIOI=1145141919810;
int T,l,r;
signed main(){
//freopen("jytwcnm.in","r",stdin);
//freopen("jytwcnm.out","w",stdout);
T=rd();
while(T--){
l=rd();r=rd();
if(r<2*l)putchar('0');
else wr((r-2*l+1)*(r-2*l+2)/2);
putchar('\n');
}
return 0;
}