#include <bits/stdc++.h>
#include "arithmetics.h"
using namespace std;
const long long mod = 1000000007;
int main() {
int R, C, Q; cin >> R >> C >> Q;
vector<long long> precbin(C);
vector<long long> precfact(C, 1);
precbin[0] = R-1;
for (int i = 1; i < C; i++) precbin[i] = (precbin[i-1]*(R+i-1))%mod;
for (int i = 1; i < C; i++) precfact[i] = (precfact[i-1]*i)%mod;
for (int i = 0; i < C; i++) precbin[i] = Div(precbin[i], precfact[i]);
for (int i = 0; i < Q; i++) {
char T; cin >> T;
int c1, cr; cin >> c1 >> cr;
if (T == 'P') {
if (c1 == cr) {
cout << R-1 << " 1";
} else cout << "0 0";
} else if (T == 'R') {
if (c1 == cr) {
cout << "1 1";
} else cout << "2 2";
} else if (T == 'Q') {
if (c1 > cr) swap(c1, cr);
if (c1 == cr || (R == C && c1 == 1 & cr == C)) {
cout << "1 1";
} else {
int ok = 0;
cout << "2 " << 4+ok;
}
} else if (T == 'K') {
cout << R-1+c1-cr << " " << precbin[c1-cr];
}
cout << "\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... |