Unable to understand why my solution is wrong 
Difference between en1 and en2, changed 21 character(s)
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;↵
}


~~~~~↵

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en2 English soumil_10 2025-12-24 13:29:08 21
en1 English soumil_10 2025-02-27 14:04:51 1558 Initial revision (published)