Submission
Status:
PPPPPPPPPPPPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: theem1502
Problemset: สุ่มสลับ
Language: c
Time: 0.002 second
Submitted On: 2025-09-21 22:17:42
#include <stdio.h>
int factorial(int num) {
int w = 1;
if(num == 0) {
return 0;
}
for (int i = 1; i <= num; i++) {
w *= i;
}
return w;
}
int main() {
int prevchar= 100;
int num;
char mainstring[27];
scanf("%d %s", &num, mainstring);
int indexsum = 0;
int accumulate = 0;
int marked[15] = {0};
for (int i = 0; i < num; i++) {
int currentnum = mainstring[i] - 'A';
marked[currentnum] = 1;
accumulate = 0;
for (int i = 0; i < currentnum; i++) {
accumulate += marked[i];
}
currentnum -= accumulate;
prevchar = currentnum;
long long something = factorial(num-i-1);
indexsum += something * currentnum;
}
printf("%d", indexsum + 1);
}