func_code_string: #include <iostream>   #include <algorithm>   #include <string.h>   #include <queue>   #include <vector>      #define INF 987654321      using namespace std;      int main() {       int t;       scanf( %d ,&t);       while(t--){           int a,b,flag=0;           scanf( %d %d ,&a,&b);           if(a==b)printf( YES n );           else if(a>b)printf( NO n );           else{               //여기가 실제로 계산해야되는 부분.               //2^n꼴은 무조건 1->2->4->8->16으로만 이동이 가능함.               // 3=11으로서, 3+1, 3+10, 3+11 3개가 가능함. 3->4,5,6다 가능하다.               // 7=111으로서, 7->8,9,10,11,12,13,14다 가능하다.               // 결국 우리가 그럼 찾아야 되는 값은 5,6과 같은 중간에 비는값이 있는 값들.                  // 5 = 101으로, 5+1, 5+100, 5+101.  5->6,9,10로 이동이 가능.               // 6 = 110으로, 6+10, 6+100, 6+110. 6->8,10,12로 이동이 가능.               // 결론. 3은 11,13,14를 못감. 8 =1000, 9=1001, 10=1010, 11=1011               // 와 그럼 3=11 숫자가 2개다보니, 11과 같이 3개가 필요한 곳은 못간다.               for(int i=0;i<30;i++)               {                 if((a>>i)&1)flag++;                 if((b>>i)&1)flag--;                 if(flag<0)                 {                     printf( NO n );                     break;                 }               }               if(flag>=0)               {                 printf( YES n );               }           }       }       return 0;   }