C++变异新型字符串病毒

题目描述:
有一种字符串病毒变异后,可以由两个字符串拼接到一起,组成新的病毒,现在小明得到n个字符串,他想知道,共有多少种拼接方法可以得到新型字符串病毒。新型字符串病毒的特征为:字符'A'和'C'出现的次数为偶数次。
输入:
第一行包含一个数n,表示字符串的数量。
接下来n行每行包含一个字符串。
输出:
输出仅一行,表示可能组合出新型字符串病毒的方案数。
样例输入:
5
ABBCD
BBBAA
D
ABBCA
CCCDA
样例输出:
2
提示(1<n<=10,对于每个字符串长度不超过10)


#include<iostream>
#define MAXSIZE 10
using namespace std;
int AC[MAXSIZE][2] = { 0 };
void getAC(string str, int index) {
    int i = 0, len = str.length();
    int a=0, c=0;
    for (i = 0; i < len; i++) {
        if (str[i] == 'A') a += 1;
        else if (str[i] == 'C') c += 1;
    }
    AC[index][0] = a;
    AC[index][1] = c;
}
int main() {
    string str[10];
    int N; 
    int i = 0, j = 0;
    cin >> N;
    for (i = 0; i < N; i++) {
        cin >> str[i];
        getAC(str[i], i);
    }
    int count = 0;
    int a1, a2, c1, c2;
    for (i = 0; i < N-1; i++) {
        for (j = i + 1; j < N; j++) {         
            a1 = AC[i][0]; a2 = AC[j][0];
            c1 = AC[i][1]; c2 = AC[j][1];
            if ((a1 + a2) % 2 == 0 && (c1 + c2) % 2 == 0)//假设出现0也是偶数次
                count += 1;
        }
    }
    cout << count << endl;
}

img