結果
問題 | No.683 Two Operations No.3 |
ユーザー |
|
提出日時 | 2018-05-11 22:43:27 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,376 bytes |
コンパイル時間 | 844 ms |
コンパイル使用メモリ | 99,744 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-28 09:54:10 |
合計ジャッジ時間 | 1,455 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 16 |
ソースコード
#include <iostream>#include <string>#include <algorithm>#include <iomanip>#include <vector>#include <map>#include <cmath>#include <queue>#include <utility>#include <functional>#include <deque>#include <cctype>#include <stack>#include <bitset>#include <set>using namespace std;using ll = long long;typedef unsigned long long ull;typedef pair<ll, ll> P;const ll MOD = 1e9 + 7;const ll INF = 1 << 30;const ll INF2 = 9e18;const double INF3 = 9e14;const int dx[4] = { 1,0,-1,0 }, dy[4] = { 0,1,0,-1 };const int tx[8] = { -1,0,1,-1,1,-1,0,1 }, ty[8] = { -1,-1,-1,0,0,1,1,1 };#define ALL(x) (x).begin(),(x).end()#define pb push_back#define fr first#define sc secondint main() {ll a, b;cin >> a >> b;queue<P>q;q.push(P(a, b));if (a == 0 || b == 0) {cout << "Yes" << endl;return 0;}while (true) {if (q.size() == 0)break;P c = q.front();q.pop();if (c.fr == 0 || c.sc == 0) {cout << "Yes" << endl;return 0;}if (c.fr % 2 == 0 && c.sc % 2 == 1) {c.fr /= 2;c.sc -= 1;q.push(P(c.fr, c.sc));}else if(c.fr % 2 == 1 && c.sc % 2 == 0) {c.fr -= 1;c.sc /= 2;q.push(P(c.fr, c.sc));}else if (c.fr % 2 == 0 && c.sc % 2 == 0) {q.push(P(c.fr / 2, c.sc - 1));c.fr -= 1;c.sc /= 2;q.push(P(c.fr, c.sc));}else {continue;}}cout << "No" << endl;return 0;}