Submission

Status:

PPPPPPPPPPPPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: Nuttykub

Problemset: สุ่มสลับ

Language: cpp

Time: 0.004 second

Submitted On: 2026-10-02 15:09:49

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