Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: koon

Problemset: ดีกค์เวิร์ด

Language: cpp

Time: 0.050 second

Submitted On: 2026-03-14 09:31:58

#include <bits/stdc++.h>
using namespace std;
    
string a, b; 
int n; 
set<string> output;

void dfs(string s, string x, int i, int cnt_a, int cnt_b) {
    if (i == n) {
        output.insert(s);
        return ;
    }
    
    s += x;

    if (cnt_b > cnt_a) return ;
    if (cnt_a > n/2 || cnt_b > n/2) return ;
    dfs(s, b, i+1, cnt_a, cnt_b+1);
    dfs(s, a, i+1, cnt_a+1, cnt_b);
}

int main() {
    cin.tie(0)->sync_with_stdio(false);
    cin >> n;
    n *= 2;
    cin >> a >> b;

    string s = "";

    dfs(s, a, 0, 1, 0);
    int ans = 0;
    for (auto i : output) {
        int sum = 0;
        for (int j = 0; j < i.size(); j++) {
            sum += (j+1)*(i[j]-'A'+1);
        }
        ans += sum;
    }

    cout << ans;
    return 0;
}