• Помогите решить на С++ или на Паскаль

    ЗАДАЧА №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

Ответы 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
    answer img
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years