Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: theem1502

Problemset: ห่วงโซ่ (Chain)

Language: c

Time: 0.014 second

Submitted On: 2025-09-26 22:18:40

#include <stdio.h>
#include <stdlib.h>

int main() {
    char name[1000];
    
    int tempnum;
    scanf("%s %d", name, &tempnum);
    int length = 0;
    while (name[length] != '\0') {
        length++;
    }

    

    int num = tempnum * 2 + 1;
    char **thearray = malloc(num * sizeof(char*));
    /*
    for (int i = 0; i < num; i++) {
        for (int k = 0; k < length; k++) {
        for (int j = 0; j < num; j++) {
            if (i + j == num / 2 || i+j == num + num / 2 -1 || i - j == num / 2 || j - i == num / 2) {
                printf("%c", 'X');
            }
            else {
                printf("%c", '_');
            }

        }
    }
        printf("\n");
    }*/

    for (int i = 0; i < num; i++) {
        thearray[i] = malloc((num * length) * sizeof(char));
    }

    for (int i = 0; i < num; i++) {
        for (int j = 0; j < num * length; j++) {
            thearray[i][j] = '.';
        }
    }

    int keeptrack = tempnum;
    int anotherthing = 0;
    for (int i = 0; i < length; i++) {
        for (int j = 0; j < tempnum; j++) {
            thearray[j][keeptrack - j] = name[i];
            thearray[num - j - 1][keeptrack - j] = name[i];
            thearray[num -j-1][keeptrack + j] = name[i];
            thearray[j][keeptrack + j] = name[i];
        }
        thearray[num / 2][anotherthing] = name[i];
        thearray[num/2][anotherthing + num -1] = name[i];
        keeptrack += num - 2;
        anotherthing += num - 2;

        
    }

    for (int i = 0; i < num; i++) {
        for (int j = 0; j < num * length - ((length - 1) * 2); j++) {
            printf("%c", thearray[i][j]);
        }
        printf("\n");
    }
}