12176. Поліоміно


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Поліоміно - це шматок головоломки у формі зв'язаного багатокутника, який складається із з'єднання кількох квадратів своїми сторонами.

Існує сітка з чотирма рядками та чотирма стовпчиками та трьома поліоміно, які вписуються в сітку. Форма \(i\)-го поліміно представлена 16 символами \(P_{i,j,k}\) ​ ( \(1≤j,k≤4)\). Вони описують стан сітки, коли на ній розміщено \(i\)-ту поліміно. Якщо \(P_{i,j,k}\) ​ дорівнює #, квадрат у \(j\)-му рядку зверху та \(k\)-му стовпчику ліворуч займає поліміно; якщо це '.', квадрат не зайнятий.

Ви хочете заповнити сітку всіма трьома поліоміно так, щоб усі наведені нижче умови були задоволені.

  • Усі квадрати сітки покриті поліоміно.
  • Поліоміно не повинні перекривати один одного.
  • Поліоміно не має стирчати з сітки.
  • Поліоміно можна вільно перекладати та повертати, але не можна перевертати.

Чи можна сітку заповнити поліоміно, щоб задовольнити ці умови?

Обмеження

  • \(P_{i,j,k}\) ​ дорівнюють # або '.'.
  • Дані поліоміно є зв’язаними. Іншими словами, до квадратів, які складають поліоміно, можна дістатися один від одного, слідуючи лише за квадратами вгору, вниз, ліворуч і праворуч.
  • Наведені поліоміно не порожні.

Формат вхідних даних

Вхідні дані надаються зі стандартного вводу в такому форматі:

Формат вихідних даних

У вихідний потік виведіть відповідь: Yes або No.

Приклад вхідних даних

....
###.
.#..
....
....
.###
.##.
....
..#.
.##.
.##.
.##.

Приклад вихідних даних

Yes

На малюнку нижче показано форми поліоміно, що відповідають зразку вхідних даних.

У цьому випадку ви можете заповнити ними сітку, щоб задовольнити умови формулювання задачі, розмістивши їх, як показано на малюнку нижче.

Приклад вхідних даних

###.
#.#.
##..
....
....
..#.
....
....
####
##..
#...
#...

Приклад вихідних даних

Yes

Як і в першому поліоміно, поліоміно може мати форму багатокутника з отвором.

Приклад вхідних даних

##..
#..#
####
....
....
##..
.##.
....
.#..
.#..
.#..
.#..

Приклад вихідних даних

No

Коментарі

Ще немає коментарів.