#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int a, b; while (cin >> a >> b) { // 先保证 a 和 b 的二进制表示都为 16 位 vector<int> bina(16, 0), binb(16, 0); // 填充 a 和 b 的二进制位 for (int i = 15; i >= 0; i--) { bina[i] = a & 1; a >>= 1; binb[i] = b & 1; b >>= 1; } // 对 b 进行循环左移并比较 bool found = false; for (int i = 0; i < 16; i++) { bool isequal = true; // 进行循环左移 for (int j = 0; j < 16; j++) { if (bina[j] != binb[(j + i) % 16]) { isequal = false; break; } } if (isequal) { cout << "YES" << endl; found = true; break; } } if (!found) { cout << "NO" << endl; } } }