#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NUM_CELLS 71
#define NUM_GENERATIONS 32
#define char_ON '#'
#define char_OFF '_'
void do_generation(char *cells, int num_cells)
{
int i;
char *new_cells
= (char*)malloc(num_cells
+ 1); new_cells[0] = cells[1];
new_cells[num_cells-1] = cells[num_cells-2];
for (i=1; i<=num_cells-2; i++)
{
new_cells[i] = cells[i-1] ^ cells[i+1];
}
memcpy(cells
, new_cells
, num_cells
-1); }
int main()
{
char cells[NUM_CELLS];
int i, j;
for (i=0; i<NUM_CELLS; i++) cells[i] = (char)0;
cells[(NUM_CELLS-1)/2] = (char)1;
for (i=1; i<=NUM_GENERATIONS; i++)
{
for (j=0; j<NUM_CELLS; j++)
{
putchar(cells
[j
] ? char_ON
:char_OFF
); }
do_generation(cells, NUM_CELLS);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojZGVmaW5lIE5VTV9DRUxMUyA3MQojZGVmaW5lIE5VTV9HRU5FUkFUSU9OUyAzMgojZGVmaW5lIGNoYXJfT04gICcjJwojZGVmaW5lIGNoYXJfT0ZGICdfJwoKdm9pZCBkb19nZW5lcmF0aW9uKGNoYXIgKmNlbGxzLCBpbnQgbnVtX2NlbGxzKQp7CglpbnQgaTsKCWNoYXIgKm5ld19jZWxscyA9IChjaGFyKiltYWxsb2MobnVtX2NlbGxzICsgMSk7CgluZXdfY2VsbHNbMF0gPSBjZWxsc1sxXTsKCW5ld19jZWxsc1tudW1fY2VsbHMtMV0gPSBjZWxsc1tudW1fY2VsbHMtMl07CgkKCWZvciAoaT0xOyBpPD1udW1fY2VsbHMtMjsgaSsrKQoJewoJCW5ld19jZWxsc1tpXSA9IGNlbGxzW2ktMV0gXiBjZWxsc1tpKzFdOwoJfQoJCgltZW1jcHkoY2VsbHMsIG5ld19jZWxscywgbnVtX2NlbGxzLTEpOwoJZnJlZShuZXdfY2VsbHMpOwp9CgkKaW50IG1haW4oKQp7CgljaGFyIGNlbGxzW05VTV9DRUxMU107CglpbnQgaSwgajsKCQoJZm9yIChpPTA7IGk8TlVNX0NFTExTOyBpKyspIGNlbGxzW2ldID0gKGNoYXIpMDsKCWNlbGxzWyhOVU1fQ0VMTFMtMSkvMl0gPSAoY2hhcikxOwoJCglmb3IgKGk9MTsgaTw9TlVNX0dFTkVSQVRJT05TOyBpKyspCgl7CgkJZm9yIChqPTA7IGo8TlVNX0NFTExTOyBqKyspCgkJewoJCQlwdXRjaGFyKGNlbGxzW2pdID8gY2hhcl9PTjpjaGFyX09GRik7CgkJfQoJCXB1dGNoYXIoJ1xuJyk7CgkJZG9fZ2VuZXJhdGlvbihjZWxscywgTlVNX0NFTExTKTsKCX0KCQoJcmV0dXJuIDA7Cn0=