Submission

Status:

PPPPP

Subtask/Task Score:

100/100

Score: 100

User: kenkong587

Problemset: ชั้นหนังสือ

Language: c

Time: 0.057 second

Submitted On: 2026-09-28 12:26:19

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

int main(){

    int l = 0;
    int n = 0;

    scanf("%d %d",&l,&n);

    int count[n];
    char name[n][l + 1];

    char boxname[l + 1];

    for(int i = 0;i < n;i++){
        scanf("%d %s",&count[i],name[i]);
    }

    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - i - 1; j++) {
            if (strcmp(name[j], name[j+1]) > 0) {
                strcpy(boxname, name[j]);
                strcpy(name[j], name[j+1]);
                strcpy(name[j+1], boxname);

                int temp_count = count[j];
                count[j] = count[j+1];
                count[j+1] = temp_count;
            }
        }
    }

    int allcount = 0;

    for(int i = 0; i < n; i++){
        allcount += count[i];
    }

    char book[allcount][l + 1];

    int k = 0;

    for(int i = 0; i < n; i++){
        for(int j = 0; j < count[i]; j++){
            strcpy(book[k], name[i]);
            k++;
        }
    }

    printf("+");

    for(int i = 0;i < allcount;i++){
        printf("-+");
    }

    printf("\n");

    for(int i = 0;i < l;i++){
        printf("|");
        for(int j = 0;j < allcount;j++){
            int len = strlen(book[j]);
            if(j % 2 != 0){
                if(i < l - len){
                    printf(".");
                }
                else{
                    printf("%c",book[j][l - 1 - i]);
                }
            }
            else{
                if(i < len){
                    printf("%c",book[j][i]);
                }
                else{
                    printf(".");
                }
            }
            printf("|");
        }
        printf("\n");
    }

    printf("+");

    for(int i = 0;i < allcount;i++){
        printf("-+");
    }

    return 0;
}