CF1371B Magical Calendar
题面传送门
又是一道分类讨论的题目。
如果\(r>n\),那么其实\(k=r\)与\(k>r\)的任何值是一样的,所以可以忽略。而\(k=r\)又只有一个答案,那么答案就是\(\frac{(n-1)n}{2}+1\)
反之,答案就是一个普通等差数列\(\frac{(r-1)r}{2}\)
代码实现:
#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);
}
}