Submission

Status:

PPPP-PP-PPPPP-PP--PP

Subtask/Task Score:

75/100

Score: 75

User: theem1502

Problemset: สุ่มสลับ

Language: c

Time: 0.001 second

Submitted On: 2025-09-21 22:04:11

#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';
        accumulate = 0;
for (int i = 0; i < currentnum; i++) {
    accumulate += marked[i];
}

        currentnum -= accumulate;


        prevchar = currentnum;
        int something = factorial(num-i-1);
        indexsum += something * currentnum;
        marked[currentnum] = 1;
        //printf("%d\n", something * currentnum);
    }
    printf("%d", indexsum + 1);
}