#include ?stdafx.h?
#include ?stdio.h?

// Количество клеток
const int count=23;

// Функция, обеспечивающая ?заворачивание? структуры
// клеточного автомата в тор во избежание возникновения
// краевых эффектов
inline int TorIt(int x) 
{
	if (x<0) return x+count; else return x%count;
}

// Функция поведения клетки
// U - Верх; UR - Верх-Право; R - Право; DR - Низ-Право;
// D - Низ; DL - Низ-Лево; L - Лево; UL - Верх-Лево
int f(int y, int yU, int yUR, int yR, int yDR, int yD, int yDL, int yL, int yUL)
{
	// Вычисление количества живых соседей
	int i=yU+yUR+yR+yDR+yD+yDL+yL+yUL;

	// Мертвая клетка оживет, если у нее имеются три
	// живых соседа
	if (y==0 && i==3) return 1;

	// Живая клетка останется живой, если у нее имеются
	// два или три живых соседа
	if (y==1 && (i==2 || i==3)) return 1;

	// В остальных случаях клетка будет мертвой
	return 0;
}

// Главная функция приложения
int main(int argc, char* argv[])
{
	// Массив для хранения текущих состояний клеток
	int y[count][count];

	// Массив для хранения новых состояний клеток
	int y1[count][count];

	// Переменная, используемая при обработке нажатия на
	// клавиши  и q
	char c;

	// Счетчик итераций
	long iter=0;

	// Начальное заполнение массива клеток
	for (int i=0; i и q
		c=getchar();
		if (c==?q?) return 0;

		iter++;
	}

	return 0;}