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