#include "bits/stdc++.h"
#include "arithmetics.h"
using namespace std;
constexpr int P = 1e9+7;
int binpow(int base, int exp, int modulus=P) {
base %= modulus;
int result = 1;
while (exp > 0) {
if (exp & 1) result = (1ll*result * base) % modulus;
base = (1ll*base * base) % modulus;
exp >>= 1;
}
return result;
}
int c(int n, int k) {
k = max(k, n - k);
int ans = 1;
for (int i = 1; i <= n - k; i++) ans = Mul(ans, i);
ans = Div(1, ans);
for (int i = k + 1; i <= n; i++) ans = Mul(ans, i);
return ans;
}
int main() {
int n, m, q;
cin >> n >> m >> q;
while (q--) {
char op;
int c1, c2;
cin >> op >> c1 >> c2;
assert(op == 'K');
int d = abs(c1 - c2);
int ans = 0;
for (int i = d; i < n; i += 2) {
ans = Add(ans, Mul(c(n - 1, i), c(i, (i - d) / 2)));
}
cout << n - 1 << ' ' << ans << '\n';
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |