Submission

Status:

PPPPPPPPPPPPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: chokun

Problemset: สุ่มสลับ

Language: cpp

Time: 0.004 second

Submitted On: 2026-10-13 10:13:44

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

long long factorial(int n){
    long long fact = 1;
    for (int i = 1; i <= n; i++){
        fact *= i;
    }
    return fact;
}

int main(){
    int n;
    cin >> n;

    string s;
    cin >> s;
    long long rank = 1;
    for (int i = 0; i < n; i++){
        int count_samller = 0;

        for (int j = i + 1; j < n; j++){
            if(s[j] < s[i]){
                count_samller++;
            }
        }
        
        int remaining_char = n - 1 - i;

        rank += (long long)count_samller * factorial(remaining_char);
    }
    
    cout << rank;
}