数字をフラグのvectorに変換するヘルパー (例: 3 => [1, 1, 0, 0])

#include<bitset>

// char to int
int ctoi(char c) {
    if (c >= '0' && c <= '9') {
        return c - '0';
    }
    return 0;
}

const int FLAG_NUM = 10;
// 1023 => 00111 11111
vector<int> num_to_flags(int x){
    stringstream ss;
    ss << static_cast<std::bitset<FLAG_NUM> >(x);
    string s = ss.str();
    vector<int> V(FLAG_NUM);
    FOR(i, 0, FLAG_NUM){
        V[i] = ctoi(s[i]);
    }
    return V;
}

実際に使っているコード

https://atcoder.jp/contests/abc080/submissions/3887402