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