Pagini recente » Cod sursa (job #2089079) | Cod sursa (job #2263400) | Cod sursa (job #354087) | Cod sursa (job #2280991) | Cod sursa (job #2024639)
#include <bits/stdc++.h>
using namespace std;
int ct=0;
const int maxn = 1e5 + 50;
int n , x;
vector < int > rx;
bool Solve(){
++ct;
random_shuffle( rx.begin() , rx.end() );
int w = 0;
for(int i = 0 ; i < n - 1 ; ++ i) w ^= rx[i];
int an = x ^ w;
for(int i = 0 ; i < n - 1 ; ++ i)
if( an == rx[i] )
return false;
if( an > 1e6 ) return false;
return true;
}
int main( int argc , char * argv[] ){
//freopen( "Sample" , "r" , stdin );
srand( time( NULL ) );
for(int i = 0 ; i <= 500000 ; ++ i) rx.emplace_back( i );
cin >> n >> x;
if( n == 2 && x == 0 ){
puts( "NO" );
return 0;
}
printf( "YES\n" );
if( n == 1 ) printf( "%d\n" , x );
else{
Solve();
int w = x;
for(int i = 0 ; i < n - 1 ; ++ i) printf( "%d " , rx[i] ) , w ^= rx[i];
printf( "%d\n" , w );
}
return 0;
}