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;
}