题面传送门
又是一道分类讨论的题目。
如果
r
>
n
r>n
r>n,那么其实
k
=
r
k=r
k=r与
k
>
r
k>r
k>r的任何值是一样的,所以可以忽略。而
k
=
r
k=r
k=r又只有一个答案,那么答案就是
(
n
−
1
)
n
2
+
1
\frac{(n-1)n}{2}+1
2(n−1)n+1
反之,答案就是一个普通等差数列
(
r
−
1
)
r
2
\frac{(r-1)r}{2}
2(r−1)r
代码实现:
#include<cstdio>
using namespace std;
long long n,m,k,x,y,t,ans;
int main(){
scanf("%lld",&t);
while(t--){
scanf("%lld%lld",&n,&m);
if(m<=n-1) ans=(m+1)*m/2;
else ans=(n-1)*n/2+1;
printf("%lld\n",ans);
}
}