Submission #1218140

#TimeUsernameProblemLanguageResultExecution timeMemory
1218140__moin__Chess Rush (CEOI20_chessrush)C++20
0 / 100
0 ms324 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
const int p = 1e9+7;

__int32_t main() {
    ios::sync_with_stdio(0); cin.tie(0);

    int r, c, q; cin >> r >> c >> q;
    for (int i = 0; i < q; i++) {
        char t; int in, out; cin >> t >> in >> out;
        switch (t) {
        case 'P':
            if (in != out) {
                cout << "0 0\n";
                break;
            }
            cout << r-1 << "\n";
            break;
        case 'R':
            if (in == out) {
                cout << "1 1\n";
            } else {
                cout << "2 2\n";
            }
            break;
        case 'Q':
            if (in == out) {
                cout << "1 1\n";
            } else if (r == c && (in == 1 || in == c) && (out == 1 || out == c)) {
                cout << "1 1\n";
            } else {
                // int diag1phi = (1+i-r-out);
                // int cnt = 0;
                // int diag2phi = -diag1phi;
                // if ((diag1phi & 1) == 0) {
                //     if (1+diag1phi/2 <= c) cnt++;
                //     if (1+diag2phi/2 >= 1) cnt++;
                // }
                int cnt = 0;
                int k1 = 1-in;
                int k2 = r+out;
                int x1 = k1+k2;
                if ((x1 & 1) == 0 && (k2-x1/2) <= c) cnt++;
                int k3 = 1+in;
                int k4 = r-out;
                int x2 = k3+k4;
                if ((x2 & 1) == 0 && (k3-x2/2) >= 1) cnt++;
                cout << "2 " << (4 + cnt) << "\n";
            }
            break;
        default:
            // return 1;
            break;
        }
    }

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...