#include #include #include #include #include #include #include #define rep(i,n) for(i=0; i=0; --i) #define in(a) cin >> a #define out(a,b) cout << a << b #define print_vec(v) for(auto it=v.begin();it!=v.end();++it)cout<<*it <<" ";cout< masu_cnt(n, -1); masu_cnt[0] = 1; vector cur_q={0}; lint cur_i; while(!cur_q.empty()){ cur_i = cur_q.front(); cur_q.erase(cur_q.begin()); bitset<14> bit(cur_i+1); lint move = bit.count(); if(cur_i-move>=0&&masu_cnt[cur_i-move]<0){ masu_cnt[cur_i-move] = masu_cnt[cur_i]+1; cur_q.push_back(cur_i-move); } if(cur_i+move