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