题目描述
在一条数轴上,从0至N共有N+1个整点,分别是:0,1,2,3,4,...N。奶牛A要选择其中的一个整点作为它的家,奶牛B也要选择其中的一个整点作为它的家,但它们不能选择相同的整点。为了方便联络,它们的家的距离不能超过D。问有多少种不同的方案?答案模10007。
输入格式
一行,两个整数,N和D。 1 <= N <= 10^9。 1 <= D <=1000。
输出格式
一个整数。
输入样例
3 2
输出样例
10
题解
直接推得答案为:$d+d+d+...+d$($n-d+1$个$d$)与$1+2+3+...+(d-3)+(d-2)+(d-1)$的和,即$d(n-d+1) + \frac {d (d - 1)} {2}$。
#include <iostream> using namespace std; long long n, d; int main() { cin >> n >> d; if(n < d) return cout << 0, 0; cout << ((n - d + 1) * d + d * (d - 1) / 2) * 2 % 10007; return 0; }