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