Submission
Status:
PPPPPPPPPPPPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: GastrointestinalTrackInflammation
Problemset: สุ่มสลับ
Language: cpp
Time: 0.003 second
Submitted On: 2025-10-06 21:59:37
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define df double
void solve(){
ll ans=0;
int order[12];
ll power[12]={0};
for(int i=0;i<12;i++){
order[i]=i;
}
int n;
string s;
cin>>n;
cin>>s;
power[n-2]=1;
ll curmul=2;
for(int i=n-3;i>=0;i--){
power[i]=power[i+1]*curmul;
curmul++;
}
for(int i=0;i<n;i++){
int cur=s[i]-'A';
int curorder=order[s[i]-'A'];
for(int j=cur;j<12;j++)order[j]--;
ans+=curorder*power[i];
}
cout<<ans+1<<endl;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int t=1;
//cin>>t;
while(t--)solve();
return 0;
}