Турниры для начинающих: Московская командная олимпиада для 8 классов, 2007 год
Задача №505. Жизнь в квадрате
Во всех задачах ввод и вывод данных производятся через стандартные потоки ввода-вывода. Каждая программа должна работать на одном тестовом примере не более 1 секунды. Ограничение по памяти – 64 Мб.
Заведем 2 таблицы a и b. В первой будем хранить текущее состояние клетки, во второй - судьбу каждой клетки. Вводим входные данные, начинаем цикл от 1 до t. На каждой итерации заполняем таблицу b нулями, для каждой клетки из массива a считаем кол-во ее соседей и делаем то, что сказано в условии задачи - определяем судьбу клетки и заносим ее в массив b; копируем содержимое массива b в массив a. Все, теперь можно выводить полученную таблицу. Кстати, чтобы не выйти ненароком за пределы массива при подсчете соседей клеток дучше создать барьер из нулей, окружающий таблицы.