Description
很久很久以前,E国遭遇了一次巨大的冲击。E国的铁路运输网已经完全崩溃。但是伟大的列车托夫出现了,他领导着E国人重新开始修铁路。为了生产资料的运输,我们希望任意的两个城市都能够经由铁路直接或间接连通。
但是E国的城市修建的十分奇异,以至于每个城市至多只能和其它城市中的kk座之间直接修建一条铁路。现在,E国有nn个城市,那么最多能在E国建设多少条铁路?这里,认为在两个城市间直接铺设多条铁路是不合法的。如果无论怎么修建都不能连通所有城市,则输出00。
Input
输入包含多组测试数据。第一行是一个整数TT (T≤1000T≤1000),表示测试组数。随后有TT行,每行有两个整数nn, kk(1≤n≤10000,0≤k≤100001≤n≤10000,0≤k≤10000)分别表示,E国城市的数目和每个城市最多能直接相连的城市个数。
Output
对于每组输入数据,输出包含所求数目的一行。
Sample Input
2
5 3
5 0
Sample Output
7
0
题解:
挺有趣的一道题 特判几下
AC代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int T;
scanf("%d",&T);
while(T--) {
int ans;
int n, k;
scanf("%d%d",&n,&k);
if(n == 1||k==0 ||(n==2&&k==0) || (n!=2&&k==1))
ans = 0;
else {
if(k > n-1) ans = n*(n-1)/2;
else ans = n*k/2;
}
printf("%d\n",ans);
}
return 0;
}