Submission

Status:

PPP-P-Px-xPPP-P--xx-

Subtask/Task Score:

45/100

Score: 45

User: Whatthepoop

Problemset: สุ่มสลับ

Language: c

Time: 0.002 second

Submitted On: 2025-10-12 23:34:12

#include <stdio.h>
#include <string.h>

int count = 0;
char result[10000][20];

void swap(char *a, char *b) {
    char temp = *a;
    *a = *b;
    *b = temp;
}

void permute(char *str, int l, int r) {
    if (l == r) {
        strcpy(result[count++], str);
        return;
    }

    for (int i = l; i <= r; i++) {
        swap(&str[l], &str[i]);
        permute(str, l + 1, r);
        swap(&str[l], &str[i]);
    }
}

int main() {
    int pos;
    scanf("%d", &pos);

    char s[100];
    scanf("%s", s);
    int n = strlen(s);

    char temp[100];
    strcpy(temp, s);

    for(int i = 0; i < n-1; i++){
        for(int j = 0; j < n-i-1; j++){
            if(s[j] > s[j+1]){
                int t = s[j];
                s[j] = s[j+1];
                s[j+1] = t;
            }
        }
    }

    permute(s, 0, n - 1);

    for(int i = 0; i < count; i++){
        if(strcmp(result[i], temp) == 0){
            printf("%d", i+1);
            break;
        }
    }

    return 0;
}