第一题
``` cpp
#include <iostream>
#include <vector>
#include <string>
#include <map>
using namespace std;
int slideWindow(const vector<int>& v) {
    int cnt = 0;
    int s = v.size();

    for (int left = 0, right = 0; right < s; right++) {
        if (v[right] == 0) {
            left = right++;
            continue;
        }
        int tL = left;
        while (right - tL + 1 >= 5) {
            int tmp = 1;
            for (int l = tL; l <= right; l++) tmp *= v[l];
            cnt += tmp;
            tL++;
        }
    }
    return cnt;
}
int main()
{
    int T = 0;
    std::cin >> T;

    while (T--) {
        int num = 0;
        cin >> num;
        vector<int> v(14, 0);
        while (num--) {
            string t;
            cin >> t;
            int i = atoi(t.c_str());
            if (i <= 10 && i >= 2)
                v[i]++;
            else if (t == "A")
                v[t[0] - 'A' + 1]++;
            else if (t == "J")
                v[11]++;
            else if (t == "Q")
                v[12]++;
            else v[13]++;
        
        }

        std::cout << slideWindow(v) << std::endl;
    }
}
```

第二题
``` cpp
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string intToBin(int num) {
    //if (num == 0) return "0";
    string s(10, '0');
    int i = 0;
    while (num) {
        int a = num & 1;
        num >>= 1;
        s[i++] = a + '0';
    }
    return s;
}

int binToInt(string& s) {
    int ans = 0;
    for (int i = 0; i < s.size(); i++) {
        ans += (s[i] - '0') * pow(2, i);
    }
    return ans;
}

string Result(string& num) {
    //if (num == 0) return "0";
    string str = "";
    int p = num.size();
    while (p >= 0) {
        int begin = p - 3 > 0 ? p - 3 : 0;
        int end = p-1;
        p -= 3;
        string s1(num.substr(begin, end - begin + 1));
        int n1 = atoi(s1.c_str());
        str += intToBin(n1);
    }
    vector<string> vecStr;
    int i = 0;
    while(i < str.size()) {
        string s;
        int j = 5;
        while (i < str.size() && j--) {
            s.push_back(str[i++]);
        }
        vecStr.push_back(s);
    }
    string ret = "";
    for (auto& v : vecStr) {
        int num = binToInt(v);
        if (num < 10) ret += num + '0';
        else ret += 'A' + num - 10;
    }
    reverse(ret.begin(), ret.end());
    i = 0;
    while (ret[i] == '0') {
        i++;
    }

    return ret.substr(i);
}

int main()
{
    int T = 0;

    while (cin >> T) {
        while (T--) {
            string num;
            cin >> num;
            std::cout << Result(num) << std::endl;
        }
    }
}

```