用户输出
0
系统信息
Exited with return code 0
编号 | 题目 | 状态 | 分数 | 总时间 | 内存 | 代码 / 答案文件 | 提交者 | 提交时间 |
---|---|---|---|---|---|---|---|---|
#69171 | #1322. [L2-1]来吃糖果吧 | Accepted | 100 | 269 ms | 328 K | C++ 17 / 984 B | 嘉心糖 | 2022-05-08 23:13:30 |
#include <stdio.h>
#define MAX 1000000007
long int mul(long int a, long int b, long int m) {
int r = 0;
while (b) {
if (b & 1)
r = (r + a) % m;
a = a * 2 % m;
b >>= 1;
}
return r;
}
long int pow(long int a, long int b, long int m) {
long int r = 1;
while (b) {
if (b & 1)
r = mul(r, a, m);
a = mul(a, a, m);
b >>= 1;
}
return r;
}
long int C(long int n, long int x) {
if (x > n / 2)
x = n - x;
long int sum1 = 1;
long int sum2 = 1;
for (int i = 0; i < x; i++) {
sum1 = mul(sum1, n - i, MAX);
sum2 = mul(sum2, i + 1, MAX);
}
long int tmp = pow(sum2, MAX - 2, MAX);
return mul(sum1, tmp, MAX);
}
int main() {
long int n, a, b;
scanf("%ld%ld%ld", &n, &a, &b);
long int sum = pow(2, n, MAX);
// printf("%ld\n",sum);
long int ans1 = (sum - C(n, a) - C(n, b) + 2 * MAX - 1) % MAX;
// printf("%ld\n",ans1);
printf("%ld", ans1);
return 0;
}
用户输出
382492393
系统信息
Exited with return code 0
用户输出
173776972
系统信息
Exited with return code 0
用户输出
810092880
系统信息
Exited with return code 0
用户输出
506071717
系统信息
Exited with return code 0
用户输出
582594886
系统信息
Exited with return code 0