Submission
Status:
PPPPPPPPPPPPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: Nuttykub
Problemset: สุ่มสลับ
Language: cpp
Time: 0.005 second
Submitted On: 2026-10-02 15:09:45
#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n;
string t;
cin >> n >> t;
vector<long long> fact(n + 1, 1);
for (int i = 1; i <= n; i++) fact[i] = fact[i - 1] * i;
vector<bool> used(n, false);
long long rank = 1;
for (int i = 0; i < n; i++) {
int idx = t[i] - 'A';
int c = 0;
for (int k = 0; k < idx; k++)
if (!used[k]) c++;
rank += c * fact[n - 1 - i];
used[idx] = true;
}
cout << rank << "\n";
}