A - B = C
AtCoder - arc112_a
这是个找规律的题目。
给出l 和r ,求满足A - B == C 的ABC有多少对;
其中A,B,C,均在[ l, r ]中;
当 l * 2 > r 时, 则答案必为0;
当 l * 2 == r 时,则答案为1,即A= r,B = C = r 时;
当 l * 2 < r 时,可发现,答案从2 * l 到 r 的差为1的等差数列的和
等差数列求和公式
我的代码
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int,int> PII;
const int N = 1e5 + 10;
int T;
int a[N],b[N],idx;
int n,m;
int main(){
scanf("%d",&T);
while(T --)
{
int l,r;
scanf("%d%d",&l,&r);
if(l * 2 > r) printf("0\n");
else if(l * 2 == r) printf("1\n");
else{
LL ans = 0;
LL t = r - 2 * l + 1;
ans = t * (1 + (r - 2 * l + 1)) / 2;
cout<<ans<<endl;
}
}
return 0;
}