結果
問題 | No.2521 Don't be Same |
ユーザー |
👑 |
提出日時 | 2023-10-27 23:56:09 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,813 bytes |
コンパイル時間 | 3,437 ms |
コンパイル使用メモリ | 251,200 KB |
最終ジャッジ日時 | 2025-02-17 16:16:51 |
ジャッジサーバーID (参考情報) |
judge5 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | WA * 27 |
ソースコード
#include<bits/stdc++.h> #include<atcoder/all> #define rep(i,n) for(int i=0;i<n;i++) using namespace std; using namespace atcoder; typedef long long ll; typedef vector<int> vi; typedef vector<long long> vl; typedef vector<vector<int>> vvi; typedef vector<vector<long long>> vvl; typedef long double ld; typedef pair<int, int> P; template <int m> std::ostream& operator<<(std::ostream& os, const atcoder::static_modint<m>& a) {os << a.val(); return os;} template<typename T> istream& operator>>(istream& is, vector<T>& v){int n = v.size(); assert(n > 0); rep(i, n) is >> v[i]; return is;} template<typename T> ostream& operator<<(ostream& os, const vector<T>& v){int n = v.size(); rep(i, n) os << v[i] << (i == n - 1 ? "\n" : " "); return os;} template <typename T> ostream& operator<<(ostream& os, const vector<vector<T>>& v){int n = v.size(); rep(i, n) os << v[i] << (i == n - 1 ? "\n" : ""); return os;} int main(){ int x, y; cin >> x >> y; auto s = [&](){ if(x == 0){ cout << 'A' << ' ' << 2 << ' ' << y << "\n"; y = 0; return; } if(y == 0){ cout << 'A' << ' ' << 1 << ' ' << x << "\n"; x = 0; return; } if(x >= y){ cout << 'A' << ' ' << 1 << ' ' << x - y + 1 << "\n"; x -= x - y + 1; return; }else{ cout << 'A' << ' ' << 2 << ' ' << y - x + 1 << "\n"; y -= y - x + 1; return; } }; auto t = [&](){ char z; cin >> z; if(z == 'A'){ int i; int d; cin >> i >> d; if(i == 1) x -= d; if(i == 2) y -= d; return false; } if(z == 'B'){ x = 0; y = 0; return false; } if(z == 'C'){ return true; } if(z == 'D'){ return true; } assert(true); return true; }; if(x - y == 1 or y - x == 1){ cout << "Second\n"; }else{ cout << "First\n"; s(); } while(true){ if(t()) break; s(); } return 0; }