eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Валідатор до гри в тетріс

Валідатор до гри в тетріс

Ліміт часу 2 секунди
Ліміт використання пам'яті 256 MiB

Нагадаємо умову задачі Тетріс:

У процесі гри в Тетріс зв'язані фігури (тобто зв'язні, якщо йти по 4-м напрямкам) падають донизу у колодязь з N рядків і 20 стовбців. Кожну фігуру помічено унікальною літерою англійського алфавіту від "A" до "Z". Фігури, доки вони падають, ні рухати, ні обертати не можна. Ваша програма повина за описом колодязя визначити, у якому порядку падали блоки.

Вхідні дані

Перший рядок вхідного файлу містить ціле число N (0 ≤ N ≤ 50) — кількість рядків у колодязі. Кажен з наступних рядків містить по 20 символів, кожен з яких — це або літера від "A" до "Z", або символ "." (ASCII 46), який позначає пусту клітинку.

Вам потрібно написати валідатор тестів до цієї задачі.

Вхідний файл містить декілька тестів. Кожен тест дано у наступному форматі:

Число N (1N50) і N рядків з 20 символів кожен.

Символи можуть мати ASCII коди від 32 до 127.

Сума N по усім тестам не перевищить 500000.

Вихідні дані

Для кожного тесту виведіть YES або NO — коректний тест чи ні.

Тест вважається коректним, якщо виконані всі наступні умови:

  • Використовуються лише символы "A..Z" і "."

  • Фігура (тобто множина усіх клітинок з деякою літерою) утворює зв'язну область.

  • Ніяка фігура не "висить у повітрі".

  • Фігури дійсно могли впасти у такому порядку.

Приклад

Вхідні дані #1
6
...........XX.......
..........MMMM......
..........K.........
........KKK.........
.....ZAAA.FFF.......
.....ZZZA..F.B......
2
??..................
??..................
3
AAB.................
ABB.................
AAB.................
3
....................
AA..................
..B.................
1
A..................A
1
ABCDEFGHIJKLMNOPQRST
Вихідні дані #1
YES
NO
NO
NO
NO
YES
Автор Сергій Копеліович
Джерело Зимова Школа, Харків 2011, День 5