結果
問題 | No.683 Two Operations No.3 |
ユーザー |
![]() |
提出日時 | 2018-05-11 22:53:14 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,396 bytes |
コンパイル時間 | 779 ms |
コンパイル使用メモリ | 81,036 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-28 08:56:19 |
合計ジャッジ時間 | 1,418 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 10 WA * 6 |
ソースコード
#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <set>#include <bitset>#include <cmath>#include <string>#define FI first#define SE second#define PF push_front#define PB push_back#define PPF pop_front#define PPB pop_back#define MA make_pair#define ll long long#define PA pair<int,int>#define VE vector<int>#define VP vector<PA>#define FOR(i,a,b) for(int i=a;i<b;i++)#define ROF(i,a,b) for(int i=b-1;i>=a;i--)#define YES(i) cout<<(i?"YES":"NO")<<endl#define Yes(i) cout<<(i?"Yes":"No")<<endlusing namespace std;//const int INF=1e9+7;const int mod=1e9+7;////struct poi{int X;int Y;int Z;bool operator<(const poi&R)const{return X==R.X ? Y==R.Y ? Z<R.Z : Y<R.Y : X<R.X;}};////bool check(ll a,ll b){while(a!=0&&b!=0){if(a==0||b==0){return true;}else if(a%2==0&&b%2==0){a/=2;b--;}else if(a%2==1&&b%2==1){return false;}else if(a%2==1){a--;b/=2;}else if(b%2==1){b--;a/=2;}}return true;}int main(){ll A,B;cin>>A>>B;while(A!=0&&B!=0){if((A==2&&B==1)||(A==2&&B==0)){Yes(1);return 0;}else if(A%2==0&&B%2==0){if(check(A,B)||check(B,A)){Yes(1);return 0;}else{Yes(0);return 0;}}else if(A%2==1&&B%2==1){Yes(0);return 0;}else if(B%2==1){B--;A/=2;}else{A--;B/=2;}}Yes(1);return 0;}