제출 #1325760

#제출 시각아이디문제언어결과실행 시간메모리
1325760shirokuma5Chess Rush (CEOI20_chessrush)C++20
0 / 100
0 ms332 KiB
/*# pragma GCC target("avx2") # pragma GCC optimize("O3") # pragma GCC optimize("unroll-loops")*/ #include<bits/stdc++.h> using ll = long long; using namespace std; const ll mod = 998244353; const ll INF = 1LL << 60; const int MAX = 1e9 + 10; #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define rep1(i, n) for (int i = 1; i <= (int)(n); i++) #define rep2(i, l, r) for (int i = (l); i < (int)(r); i++) #define repd(i, n) for (int i = (int)(n) - 1; i >= 0; i--) #define repd1(i, n) for (int i = (int)(n); i >= 1; i--) #define repd2(i, l, r) for (int i = (int)(r) - 1; i >= (int)(l); i--) template<class T> bool chmin(T &a, T b) { if (a > b) { a = b; return 1; } return 0; } template<class T> bool chmax(T &a, T b) { if (a < b) { a = b; return 1; } return 0; } struct edge { int to, w; }; ll inv(ll a) { ll b = mod, u = 1, v = 0; while(b) { ll t = a / b; a -= b * t; swap(a, b); u -= v * t; swap(u, v); } u %= mod; if (u < 0) u += mod; return u; } template<class T> void print(vector<T> a) { int n = a.size(); for (int i = 0; i < n; i++) cout << a[i] << " "; cout << endl; } template<class T> int low_idx(const vector<T> &a, T x) { return distance(a.begin(), lower_bound(a.begin(), a.end(), x)); } template<class T> bool next_combination(T &bit, int N) { T x = bit & -bit, y = bit + x; bit = (((bit & ~y) / x) >> 1) | y; return (bit < (1LL << N)); } int next_combination(int sub) { int x = sub & -sub, y = sub + x; return (((sub & ~y) / x) >> 1) | y; } int main() { ios::sync_with_stdio(false); std::cin.tie(nullptr); int R, C, Q; cin >> R >> C >> Q; while (Q--) { char ch; int x, y; cin >> ch >> x >> y; if (x > y) swap(x, y); if (ch == 'P') { if (x == y) cout << R - 1 << " " << 1 << endl; else cout << "0 0\n"; continue; } if (ch == 'R') { if (x == y) cout << "1 1\n"; else cout << "2 2\n"; continue; } if (ch == 'Q') { if (x == y) cout << "1 1\n"; else if (x + R - 1 == y || y + R - 1 == x) cout << "1 1\n"; else { int res = 4; if (R == C && x == 1 && y == C) res--; if ((R + y - x - 1) % 2 == 0) { int a = ((1+x)+(R-y))/2, b = ((1+x)-(R-y))/2; if (1 < a && a < R && 1 <= b && b <= C) res++; a = ((1-x)+(R+y))/2, b = ((R+y)-(1-x))/2; if (1 < a && a < R && 1 <= b && b <= C) res++; } cout << "2 " << res << endl; } continue; } } }
#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...