Submission

Status:

PPPPPPPPPPPPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: letdown

Problemset: สุ่มสลับ

Language: cpp

Time: 0.003 second

Submitted On: 2025-10-11 19:07:45

#include <iostream>

using namespace std;

long long int factorial(int n) {
    if (n == 0) return 1;
    long long int ans = n;
    for (int i = n-1; i > 1; i--) {
        ans *= i;
    }
    return ans;
}

int main() {
    string s;
    int n;
    cin >> n >> s;

    int l = s.length(), ans=1;

    for (int i = 0; i < l; i++) {
        int n = 0;
        for (int j = i+1; j < l; j++) {
            if (s[j] < s[i]) {
                n++;
            }
        }
        ans += n * factorial(l-i-1);
    }

    cout << ans;
}