I am unable to understand why the my solution is wrong (failing on test case 2) for the this question:↵
[problem:2072C]↵
Can someone please explain what am i missing here?↵
↵
~~~~~↵
#include <bits/stdc++.h>↵
using namespace std;↵
#define dbg(v) \↵
cerr << "Line(" << __LINE__ << ") -> " << #v << " = " << (v) << endl;↵
↵
↵
#define int long long↵
↵
void scanarr(int arr[], int n)↵
{↵
for(int i = 0; i < n; i++)↵
cin >> arr[i];↵
}↵
↵
int order(int x){ ↵
int ans = 0;↵
while(x!=0){↵
if(x/2 != 0) ans++;↵
x /= 2;↵
}↵
return ans;↵
}↵
↵
int32_t main(){↵
ios_base::sync_with_stdio(0);↵
cin.tie(0);↵
cout.tie(0);↵
↵
int t;↵
cin>>t;↵
while(t--){↵
int n,x;↵
cin>>n>>x;↵
int p=0, x1=x;↵
while(x1!=0){↵
if(x1%2 == 0) break;↵
p++;↵
x1 /= 2;↵
}//cout<<p<<'\n';↵
int a[31];↵
a[0] = 1;↵
for(int i=1; i<31; i++){↵
a[i] = a[i-1]*2;↵
}↵
int mex = a[p];↵
if(mex >= n){↵
for(int i=0; i<n-1; i++){↵
cout<<i<<" ";↵
}↵
if(order(n-1) == order(x)) cout<<n-1<<'\n';↵
else cout<<x<<'\n';↵
}else{↵
for(int i=0; i<n-1; i++){↵
if(i>= mex){↵
cout<<0<<" ";↵
}else ↵
{↵
cout<<i<<" ";↵
}↵
}cout<<x<<'\n';↵
}↵
}↵
return 0;↵
}↵
↵
~~~~~↵
[problem:2072C]↵
Can someone please explain what am i missing here?↵
↵
~~~~~↵
#include <bits/stdc++.h>↵
using namespace std;↵
#define dbg(v) \↵
cerr << "Line(" << __LINE__ << ") -> " << #v << " = " << (v) << endl;↵
↵
↵
#define int long long↵
↵
void scanarr(int arr[], int n)↵
{↵
for(int i = 0; i < n; i++)↵
cin >> arr[i];↵
}↵
↵
int order(int x){ ↵
int ans = 0;↵
while(x!=0){↵
if(x/2 != 0) ans++;↵
x /= 2;↵
}↵
return ans;↵
}↵
↵
int32_t main(){↵
ios_base::sync_with_stdio(0);↵
cin.tie(0);↵
cout.tie(0);↵
↵
int t;↵
cin>>t;↵
while(t--){↵
int n,x;↵
cin>>n>>x;↵
int p=0, x1=x;↵
while(x1!=0){↵
if(x1%2 == 0) break;↵
p++;↵
x1 /= 2;↵
}//cout<<p<<'\n';↵
int a[31];↵
a[0] = 1;↵
for(int i=1; i<31; i++){↵
a[i] = a[i-1]*2;↵
}↵
int mex = a[p];↵
if(mex >= n){↵
for(int i=0; i<n-1; i++){↵
cout<<i<<" ";↵
}↵
if(order(n-1) == order(x)) cout<<n-1<<'\n';↵
else cout<<x<<'\n';↵
}else{↵
for(int i=0; i<n-1; i++){↵
if(i>= mex){↵
cout<<0<<" ";↵
}else ↵
{↵
cout<<i<<" ";↵
}↵
}cout<<x<<'\n';↵
}↵
}↵
return 0;↵
}↵
↵
~~~~~↵



