Submission
Status:
PPPPPPPPPPPPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: dddrrrr
Problemset: สุ่มสลับ
Language: cpp
Time: 0.002 second
Submitted On: 2025-10-14 12:03:56
#include <bits/stdc++.h>
using namespace std;
int fac(int n){
if(n==0)return 1;
if(n<=2)return n;
return n*fac(n-1);
}
int main(){
cin.tie(0)->sync_with_stdio(0);
int n;cin >> n;
string str ;cin >> str;
long long ans = 0;
vector <bool> used(26 ,false);
int m = n;
for(int i=0 ;i<n ;i++){
int cnt =0 ;
used[str[i]-'A'] = true;
for(char c = 'A' ;c<str[i] ;c++){
if(used[c-'A'])continue;
cnt++;
}
//cout << cnt << ' ' << fac(n-i-1) << "\n";
ans += fac(n-i-1) * cnt;
}
cout << ans+1;
return 0;
}