<若隐若现的矩形>(最小内存 AI辅助)
2026-04-12 16:05:32
发布于:浙江
4阅读
0回复
0点赞
代码如下:
#include <unistd.h>
#include <cstdlib>
int main() {
char buf[16], *p = buf;
int a = 0, b = 0, f = 0;
char c;
// 极致快速整数解析(无库函数)
read(0, buf, 16);
while (*p >= '0') a = a * 10 + (*p++ - '0'); p++;
while (*p >= '0') b = b * 10 + (*p++ - '0'); p++;
c = *p; p += 2;
f = *p - '0';
// 单行缓冲区
int lineSize = b + 1;
char* line = (char*)malloc(lineSize);
if (f) {
// 实心:填充整行,一次写入所有行
for (int j = 0; j < b; ++j) line[j] = c;
line[b] = '\n';
char* out = (char*)malloc(a * lineSize);
for (int i = 0; i < a; ++i)
__builtin_memcpy(out + i * lineSize, line, lineSize);
write(1, out, a * lineSize);
free(out);
} else {
// 空心:三行模板
char* full = (char*)malloc(lineSize);
char* mid = (char*)malloc(lineSize);
for (int j = 0; j < b; ++j) full[j] = c;
full[b] = '\n';
mid[0] = c;
for (int j = 1; j < b - 1; ++j) mid[j] = ' ';
mid[b - 1] = b > 1 ? c : '\n';
mid[b] = b > 1 ? '\n' : 0;
write(1, full, lineSize);
for (int i = 1; i < a - 1; ++i) write(1, mid, lineSize);
if (a > 1) write(1, full, lineSize);
free(full); free(mid);
}
free(line);
}
点个赞吧(求求😫)
团队招募:
链接描述
这里空空如也








有帮助,赞一个