#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i,a) for(int i=(int)0;i<(int)a;++i) #define pb push_back #define eb emplace_back using ll=long long; constexpr ll mod = 1e9 + 7; constexpr ll INF = 1LL << 50; template inline bool chmin(T& a, T b) { if (a > b) { a = b; return true; } return false; } template inline bool chmax(T& a, T b) { if (a < b) { a = b; return true; } return false; } using namespace std; void solve(){ int n; cin>>n; queueq; q.push(1); vectordis(n+1,-1); dis[1]=1; while(!q.empty()){ int x=q.front(); q.pop(); int a=x+__builtin_popcount(x); int b=x-__builtin_popcount(x); if(a<=n&&dis[a]==-1){ q.push(a); dis[a]=dis[x]+1; } if(b>0&&dis[b]==-1){ q.push(b); dis[b]=dis[x]+1; } } cout<