Подскажите как решить на С++ или на Паскаль ЗАДАЧА №924 Симпатичный узор (Время: 1 сек. Память: 16 Мб Сложность: 20) На днях Иван у себя в прихожей выложил кафель, состоящий из квадратных черных и белых плиток. Прихожая Ивана имеет квадратную форму 4х4, вмещающую 16 плиток. Теперь Иван переживает, что узор из плиток, который у него получился, может быть не симпатичным. С точки зрения дизайна симпатичным узором считается тот, который не содержит в себе квадрата 2х2, состоящего из плиток одного цвета. Примеры возможных узоров: Симпатичные узоры: BWBW WBWW BWWB BBWB WWBW WBWW WWBB BWWW WWBW BWWW WWBW BWWB Несимпатичные узоры: BBWB WWWW BWWB BBWB WWWW WBBW WWBW WWWW WBBW BBWB WWWW BWWB По заданному расположению плиток в прихожей Ивана требуется определить: является ли выполненный узор симпатичным. Входные данные Входной файл INPUT.TXT содержит 4 строки по 4 символа «W» или «B» в каждой, описывающие узор из плиток. Символ «W» обозначает плитку белого цвета, а «B» - черного. Выходные данные В выходной файл OUTPUT.TXT выведите «Yes», если узор является симпатичным и «No» в противном случае. Примеры № INPUT.TXT OUTPUT.TXT 1 BWBW BBWB WWBB BWWW Yes 2 BBWB BBWB WWBW BBWB No
181
ОТВЕТЫ
Объясняю свой алгоритм решения данного задания.
Берём и запихиваем все строки в двумерный чар массив.
Потом построчно сравниваем i-j элемент столбца с i+1-j. Если это одинаковые символы - мы прибавляем к счётчику +1.
Потом сравниваем i-j+1 и i+1-j+1, если они равны, то мы прибавляем +1 при условии того, что один из этих элементов равен одному из предыдущих
Ну а потом если наш счётчик составляет 2 - мы уже знаем что этот узор не симпатичный.
В противном же случае мы идём дальше до size-1. (в нашем случае size=4 поэтому 4-1=3)
Скриншот с результатом работы, скоростью и самим кодом прикрепил.
UPD:
Ещё можешь уменьшить кол-во итераций, во втором цикле в условии можно сделать strlen(a[i])-1
Берём и запихиваем все строки в двумерный чар массив.
Потом построчно сравниваем i-j элемент столбца с i+1-j. Если это одинаковые символы - мы прибавляем к счётчику +1.
Потом сравниваем i-j+1 и i+1-j+1, если они равны, то мы прибавляем +1 при условии того, что один из этих элементов равен одному из предыдущих
Ну а потом если наш счётчик составляет 2 - мы уже знаем что этот узор не симпатичный.
В противном же случае мы идём дальше до size-1. (в нашем случае size=4 поэтому 4-1=3)
Скриншот с результатом работы, скоростью и самим кодом прикрепил.
UPD:
Ещё можешь уменьшить кол-во итераций, во втором цикле в условии можно сделать strlen(a[i])-1
30
Отв. дан
Оксана
Для написания вопросов и ответов необходимо зарегистрироваться на сайте
Другие вопросы в разделе - Информатика
Елена
в ясный весенний день ранним утром мы собрались на ...
2018-09-25 00:00:00
Евгения
Я очень люблю весенние цветы,в особенности крокусы.Синтаксический разбор. ...
2018-09-25 00:00:00
Gavinrandis
Подскажите как пожалуйста с информатикой . ...
2018-09-25 00:00:00
Cordadi
Решите пожалуйста задачу в PascalABC с помощью циклов while ...
2018-09-25 00:00:00