ブルーブリッジカップブレスレットスタイル(暴力)


ブレスレットスタイルの明ちゃんは赤サンゴ3個、白サンゴ4個、黄瑪瑙5個があります.彼はそれらをチェーンとしてつなぎ、彼女にあげたいと思っています.
今、明ちゃんは知りたいです.ブレスレットが自由に回転したり、反転したりすることを考えると、全部でどのくらいの組み合わせのスタイルがありますか.
分析:
暴力のテクニックとstringの運用
#include
using namespace std;
typedef long long ll;
int rem[3] = {3, 4, 5};
set st;
int ans = 0;
void dfs(int num, string s)
{
    if(num == 12)
    {
        for(set::iterator it = st.begin(); it != st.end(); it++)
        {
            if((*it).find(s, 0) != string::npos)
                return ;
        }
        ans++;
        st.insert(s+s);
        s = s + s;
        reverse(s.begin(), s.end());
        st.insert(s);
        return ;
    }
    for(int i = 0; i <= 2; i++)
    {
        int t = rem[i];
        if(t >= 1)
        {
            rem[i]--;
            string tmp = s;
            dfs(num+1, tmp.append(1, (char)(i+'0')));
            rem[i]++;
        }
    }
}
int main()
{
    dfs(0, "");
    cout << ans << endl;
    return 0;
}