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