Submission
Status:
TTTTx
Score: 0
User: akuyga1
Problemset: ชั้นหนังสือ
Language: c
Time: 2.091 second
Submitted On: 2024-09-25 16:55:33
#include <stdio.h>
#include <string.h>
void swap(int *arr1, int *arr2, int size) {
for (int i = 0; i < size; i++) {
int temp = arr1[i];
arr1[i] = arr2[i];
arr2[i] = temp;
}
}
int main() {
int L,N;
scanf("%d",&L);
scanf("%d",&N);
//input
char book[2000][L];
int i=0,new_i =0;
int hmn;
int old_N=N;
while (i<old_N){
scanf("%d",&hmn);
scanf("%s",book[new_i]);
for(int j=0;j<hmn;j++){
strcpy(book[new_i+j],book[new_i]);
N++;
new_i++;}
i++;
}
printf("fuck");
//order all the book
int book_code[N][L];
int code;
//by turn all books to code(array)
for(i=0;i<=N;i++){
//consider each book
for(int j=0;j<=L;j++){
book_code[i][j]=0;
code=(int)book[i][j]-'A'+1;
book_code[i][j]=code;
}
}
//now all book turn to code at book_code
for(i=0;i<=N;i++){
//compare each inside array1(each book)
for(int j=0;j<=N-i;j++){
//compare now it's time for compare each subset of each book
int done =1;
int n=0;
while (done=1){
//compare each book
if (book_code[i][n]>book_code[i+j][n])
{//swap book
swap(book_code[i],book_code[i+j],L);
done=0;
}
else if (book_code[i][n]=book_code[i+j][n]){}
if (n=L){done=0;}
}
}}
//now all are in order in book_code
//lets translate all of it back
for(i=0;i<=N;i++){
//consider each book
for(int j=0;j<=L;j++){
//according to a code is a letter-a+1
//a letter is code+ascii(A)-1
if(book_code[i][j]!=0){
book[i][j]=(char)(book_code[i][j]+65-1);}
else{book[i][j]='.';}
}
}
//now all are book in order
//build 1st floor of shelf
for(int i =0;i<N;i++){
printf("+-");}
printf("+");
for(int i =0;i<L;i++){
printf("+-");}
return 0;
}