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");
}
}