Submission

Status:

PPPPPPPPPPPPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: goine

Problemset: สุ่มสลับ

Language: cpp

Time: 0.002 second

Submitted On: 2025-10-12 14:56:24

#include <iostream>
#include <string>
using namespace std;

int fac(int n) {
    if (n == 0) return 1;
    return n * fac(n - 1);
}

int find(string &x, int pos) {
    int cnt = 0;
    for (int i = pos + 1; i < x.length(); i++) {
        if (x[i] < x[pos]) cnt++;
    }
    return cnt;
}

int main() {
    int c;
    cin >> c;
    string x;
    cin >> x;

    int sum = 0;
    for (int i = 0; i < c; i++) {
        sum += find(x, i) * fac(c - i - 1);
    }

    cout << sum + 1;
    return 0;
}