Вопрос по информатике:
Помогите решить на С++ или на Паскаль
ЗАДАЧА №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
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок - бесплатно!
- 15.03.2017 02:41
- Информатика
- remove_red_eye 11485
- thumb_up 41
Ответы и объяснения 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
- 16.03.2017 06:46
- thumb_up 27
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.