Submission
Status:
PPPPP
Score: 100
User: admin
Problemset: ชั้นหนังสือ
Language: cpp
Time: 0.038 second
Submitted On: 2024-09-24 14:09:35
#include <stdio.h>
int strcmp (const char *p1, const char *p2)
{
const unsigned char *s1 = (const unsigned char *) p1;
const unsigned char *s2 = (const unsigned char *) p2;
unsigned char c1, c2;
do
{
c1 = (unsigned char) *s1++;
c2 = (unsigned char) *s2++;
if (c1 == '\0')
return c1 - c2;
}
while (c1 == c2);
return c1 - c2;
}
void swap(int *a, int *b) {
// printf("%d %d\n", *a,*b);
int temp;
temp = *a;
*a = *b;
*b = temp;
}
char a[2005][35];
int z[2005];
char canva[35][20005];
int o[2005];
void sort(int S) {
for (int i=0; i<S-1; i++) {
for (int j=0; j<S-1; j++) {
if (strcmp(a[o[j]], a[o[j+1]]) > 0) {
// printf("%s %s\n", a[j], a[j+1]);
swap(&o[j], &o[j+1]);
}
}
}
}
int main() {
for (int i=0; i<2000; i++) {
o[i] = i;
}
int l, n;
scanf("%d%d", &l, &n);
for (int i=0; i<n; i++) {
scanf("%d %s", &z[i], &a[i]);
}
for (int i=0; i<l; i++) {
for (int j=0; j<20000; j++) {
canva[i][j] = '.';
}
}
sort(n);
int V = 0;
int H = 0;
for (int i=0; i<n; i++) {
for (int j=0; j<z[o[i]]; j++) {
if (!V) {
for (int k=0; a[o[i]][k] != 0; k++) {
canva[k][H] = a[o[i]][k];
}
} else {
for (int k=0; a[o[i]][k] != 0; k++) {
canva[l-k-1][H] = a[o[i]][k];
}
}
H++;
V++;
V%=2;
}
}
printf("+");
for (int j=0; j<H; j++) {
printf("-+");
}
printf("\n");
for (int i=0; i<l; i++) {
printf("|");
for (int j=0; j<H; j++) {
printf("%c|",canva[i][j]);
}
printf("\n");
}
printf("+");
for (int j=0; j<H; j++) {
printf("-+");
}
printf("\n");
}