Submission
Status:
PPPPPPPPPPPPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: Karatat007
Problemset: สุ่มสลับ
Language: cpp
Time: 0.004 second
Submitted On: 2026-10-07 11:44:53
#include <bits/stdc++.h>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int fact[13];
fact[0] = 1;
for(int i = 1;i <= 12;++i){
fact[i] = i * fact[i-1];
}
int n;
cin >> n;
string s;
cin >> s;
vector<char> v;
int ans = 0;
for(int i = 0;i < n;++i){
v.push_back(s[i]);
}
sort(v.begin(),v.end());
for(int i = 0;i < n;++i){
auto index = find(v.begin(),v.end(),s[i]);
ans += fact[n - 1 - i] * (int)distance(v.begin(),index);
v.erase(index);
}
cout << ans + 1;
}