Submission

Status:

PPPPPPPPPPPPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: sakurajima

Problemset: สุ่มสลับ

Language: cpp

Time: 0.004 second

Submitted On: 2026-09-28 12:11:53

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n;
    string s;
    cin >> n >> s;

    long long fact[13];
    fact[0] = 1;
    for (int i = 1; i <= n; i++) {
        fact[i] = fact[i - 1] * i;
    }

    bool used[26] = {};
    long long soln = 1;

    for (int i = 0; i < n; i++) {
        int smaller = 0;
        for (char c = 'A'; c < s[i]; c++) {

            if (!used[c - 'A']) {
                smaller++;
            }


        }
        soln += smaller * fact[n - i - 1];
        used[s[i] - 'A'] = true;
    }

    cout << soln;

}