#include #include //#define DEBUG #define NMAX 10000 using namespace std; int main(){ int N; int min[NMAX+1]; queue que; cin>>N; for(int i=1;i<=N;i++){ min[i]=-1; } que.push(1); min[1]=1; while(!que.empty()){ int bitn; int p=que.front(); #ifdef DEBUG for(int i=1;i<=N;i++){ cout<>i)!=0;i++){ if((p>>i)&1==1) bitn++; #ifdef DEBUG cout<>i)<=1&&(min[p-bitn]==-1||min[p-bitn]>min[p]+1)){ min[p-bitn]=min[p]+1; que.push(p-bitn); } if(p+bitn<=N&&(min[p+bitn]==-1||min[p+bitn]>min[p]+1)){ min[p+bitn]=min[p]+1; que.push(p+bitn); } } cout<