Submission

Status:

PPPPPPPPPPPPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: Bermmmm

Problemset: สุ่มสลับ

Language: cpp

Time: 0.003 second

Submitted On: 2025-10-13 14:31:45

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

int main() {
    int n;
    string s;
    cin >> n;
    cin >> s;
    int fact[12];
    fact[0] = 1;

    for (int i =1;i<12;i++) {
        fact[i] = fact[i-1]*i;
    }

    bool check[26];
    for (int i= 0;i<26;i++) {
        check[i] = false;
    }  

    int position = 1;

    for (int i = 0;i<n;i++) {
        int smaller = 0;
        for (char c = 'A'; c<s[i] ;c++) {
            if ((check[c - 'A']) == false) {
                smaller++;
            }
        }
        position += smaller * fact[n-i-1];
        check[s[i] - 'A'] = true;
    }
    cout << position;
    return 0;
}