Submission
Status:
P-P--------PP-P-----
Subtask/Task Score:
25/100
Score: 25
User: letdown
Problemset: สุ่มสลับ
Language: cpp
Time: 0.003 second
Submitted On: 2025-10-11 19:06:53
#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;
cin >> 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;
}