Submission

Status:

PPPPPPPPPPPPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: Some1258

Problemset: สุ่มสลับ

Language: cpp

Time: 0.003 second

Submitted On: 2026-07-28 09:14:57

#include<bits/stdc++.h>
using namespace std;
int main(){
    int x;
    string y;
    cin>>x>>y;
    int prefix[x];
    prefix[x-1]=0;
    prefix[x-2]=1;
    int multi=2;
    for(int i=x-3;i>=0;i--){
        prefix[i]=prefix[i+1]*multi;
        multi++;
    }
    /*for(int i=0;i<x;i++){
        cout<<prefix[i]<<' ';
    }*/
    int arr[x];
    for(int i=0;i<x;i++){
        arr[i]=i;
    }
    /*for(int i=0;i<x;i++){
        cout<<arr[i]<<' ';
    }*/
    int ans=0;
    for(int i=0;i<x;i++){
        int temp=y[i]-'A';
        //cout<<temp<<endl;
        ans+=prefix[i]*(arr[temp]);
        //cout<<ans<<endl;
        for(int j=(temp)+1;j<x;j++){
            arr[j]--;
        }
    }
    cout<<ans+1;
}