#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void diamond1(int n) {
int i, j;
for (i = 0; i <= n / 2; ++i) {
for (j = n / 2 - i; j > 0; --j) {
}
for (j = 0; j < i * 2 + 1; ++j) {
}
}
for (i = n / 2 - 1; i >= 0; --i) {
for (j = n / 2 - i; j > 0; --j) {
}
for (j = 0; j < i * 2 + 1; ++j) {
}
}
}
void diamond2(int n) {
int i, j;
for (i = -n / 2; i <= n / 2; ++i) {
int v = i < 0 ? -1 : 1;
for (j = 0; j < i * v; ++j) {
}
for (j = 0; j < n - 2 * i * v; ++j) {
}
}
}
void diamond3(int n) {
int i, j;
char *a = NULL;
char *s = NULL;
char *d = NULL;
a
= calloc(n
+ 1, sizeof(char)); if (!a) { return; }
s
= calloc(n
+ 1, sizeof(char)); if (!s) { goto a_free; }
d
= calloc(n
+ 1, sizeof(char)); if (!d) { goto s_free; }
for (i = 0; i < n; ++i) {
}
for (i = -n / 2; i <= n / 2; ++i) {
int v = i < 0 ? -1 : 1;
}
if (d
) { free(d
); d
= NULL
; } s_free:
if (s
) { free(s
); s
= NULL
; } a_free:
if (a
) { free(a
); a
= NULL
; } }
int main(int argc, char *argv[])
{
diamond1(5);
diamond1(7);
diamond2(5);
diamond2(7);
diamond3(5);
diamond3(7);
return EXIT_SUCCESS;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKdm9pZCBkaWFtb25kMShpbnQgbikgewogIGludCBpLCBqOwogIGZvciAoaSA9IDA7IGkgPD0gbiAvIDI7ICsraSkgewogICAgZm9yIChqID0gbiAvIDIgLSBpOyBqID4gMDsgLS1qKSB7CiAgICAgIHByaW50ZigiICIpOwogICAgfQoKICAgIGZvciAoaiA9IDA7IGogPCBpICogMiArIDE7ICsraikgewogICAgICBwcmludGYoIioiKTsKICAgIH0KCiAgICBwdXRzKCIiKTsKICB9CgogIGZvciAoaSA9IG4gLyAyIC0gMTsgaSA+PSAwOyAtLWkpIHsKICAgIGZvciAoaiA9IG4gLyAyIC0gaTsgaiA+IDA7IC0taikgewogICAgICBwcmludGYoIiAiKTsKICAgIH0KCiAgICBmb3IgKGogPSAwOyBqIDwgaSAqIDIgKyAxOyArK2opIHsKICAgICAgcHJpbnRmKCIqIik7CiAgICB9CgogICAgcHV0cygiIik7CiAgfQp9Cgp2b2lkIGRpYW1vbmQyKGludCBuKSB7CiAgaW50IGksIGo7CgogIGZvciAoaSA9IC1uIC8gMjsgaSA8PSBuIC8gMjsgKytpKSB7CiAgICBpbnQgdiA9IGkgPCAwID8gLTEgOiAxOwogICAgZm9yIChqID0gMDsgaiA8IGkgKiB2OyArK2opIHsKICAgICAgcHJpbnRmKCIgIik7CiAgICB9CgogICAgZm9yIChqID0gMDsgaiAgPCBuIC0gMiAqIGkgKiB2OyArK2opIHsKICAgICAgcHJpbnRmKCIqIik7CiAgICB9CgogICAgcHV0cygiIik7CiAgfQp9Cgp2b2lkIGRpYW1vbmQzKGludCBuKSB7CiAgaW50IGksIGo7CiAgY2hhciAqYSA9IE5VTEw7CiAgY2hhciAqcyA9IE5VTEw7CiAgY2hhciAqZCA9IE5VTEw7CiAgYSA9IGNhbGxvYyhuICsgMSwgc2l6ZW9mKGNoYXIpKTsKICBpZiAoIWEpIHsgcmV0dXJuOyB9CiAgcyA9IGNhbGxvYyhuICsgMSwgc2l6ZW9mKGNoYXIpKTsKICBpZiAoIXMpIHsgZ290byBhX2ZyZWU7IH0KICBkID0gY2FsbG9jKG4gKyAxLCBzaXplb2YoY2hhcikpOwogIGlmICghZCkgeyBnb3RvIHNfZnJlZTsgfQoKICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSB7CiAgICBzdHJuY2F0KHMsICIgIiwgMSk7CiAgICBzdHJuY2F0KGEsICIqIiwgMSk7CiAgfQoKICBmb3IgKGkgPSAtbiAvIDI7IGkgPD0gbiAvIDI7ICsraSkgewogICAgaW50IHYgPSBpIDwgMCA/IC0xIDogMTsKICAgIG1lbXNldChkLCAwLCBuICsgMSk7CiAgICBzdHJuY2F0KGQsIHMsIGkgKiB2KTsKICAgIHN0cm5jYXQoZCwgYSwgbiAtIDIgKiBpICogdik7CiAgICBwdXRzKGQpOwogIH0KCiAgaWYgKGQpIHsgZnJlZShkKTsgZCA9IE5VTEw7IH0Kc19mcmVlOgogIGlmIChzKSB7IGZyZWUocyk7IHMgPSBOVUxMOyB9CmFfZnJlZToKICBpZiAoYSkgeyBmcmVlKGEpOyBhID0gTlVMTDsgfQp9CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQp7CiAgZGlhbW9uZDEoNSk7CiAgZGlhbW9uZDEoNyk7CiAgZGlhbW9uZDIoNSk7CiAgZGlhbW9uZDIoNyk7CiAgZGlhbW9uZDMoNSk7CiAgZGlhbW9uZDMoNyk7CiAgcmV0dXJuIEVYSVRfU1VDQ0VTUzsKfQo=