1. 程式人生 > 其它 >stl:: set< set<char> >

stl:: set< set<char> >

井字棋https://www.acwing.com/problem/content/1727/
//set ans答案儲存的是set< > 所以可以起到列舉一個隊伍的作用

#include <iostream>
#include <cstring>
#include <algorithm>
#include <set>
#include <vector>

using namespace std;

set<set<char>> ans[2];
string g[3];

void insert(vector<vector<int>> ps)
{
    set<char> S;
    for (auto& p: ps)//三個元素放入s 看看有多少個
    {
        int x = p[0], y = p[1];
        S.insert(g[x][y]);
        
    }
    for (auto a:S){
        cout << a<<"第一"<< endl;
    }
    
    if (S.size() == 1) ans[0].insert(S);
    else if (S.size() == 2) ans[1].insert(S);//插入一個set
}

int main()
{
    for (int i = 0; i < 3; i ++ ) cin >> g[i];

    //行
    for (int i = 0; i < 3; i ++ ) insert({{i, 0}, {i, 1}, {i, 2}});
    //列
    for (int i = 0; i < 3; i ++ ) insert({{0, i}, {1, i}, {2, i}});
    
    
    //對角
    insert({{0, 0}, {1, 1}, {2, 2}});
    insert({{2, 0}, {1, 1}, {0, 2}});

    cout << ans[0].size() << endl;
    cout << ans[1].size() << endl;
    
    return 0;
}