Submission
Status:
PPPPPPPPPPPPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: peilin
Problemset: สุ่มสลับ
Language: c
Time: 0.002 second
Submitted On: 2025-10-12 12:37:45
#include <stdio.h>
#include <string.h>
long long factorial(int n) {
long long f = 1;
for (int i = 2; i <= n; i++) f *= i;
return f;
}
int main() {
int N;
char str[13];
int used[26] = {0};
scanf("%d", &N);
scanf("%s", str);
long long rank = 0;
for (int i = 0; i < N; i++) {
int c = str[i] - 'A';
int count = 0;
for (int j = 0; j < c; j++) {
if (!used[j]) count++;
}
rank += count * factorial(N - i -1);
used[c] = 1;
}
printf("%lld\n", rank + 1);
return 0;
}