12150. Печиво


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

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

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

Сітка розмірності \(H × W\) містить печиво у комірках. Колір печива в \(i\)-му рядку зверху та \(j\)-му стовпці зліва позначається малою англійською літерою \(c_{i,j}\) .

Виконаємо наступну процедуру.

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

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

  3. Якщо є позначені печива, видаліть їх усі та поверніться до 1; інакше припиніть процедуру.

Знайдіть кількість печива, що залишилися наприкінці процедури.

Обмеження

  • \(2≤H,W≤2000\)
  • \(c_{i,j}\) ​ — це мала англійська літера.

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

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

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

У вихідний потік виведіть відповідь.

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

4 3
aaa
aaa
abc
abd

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

2

Процедура виконується наступним чином.

  1. Позначте печиво в першому та другому рядах.

  2. Позначте печиво в першому стовпчику.

  3. Видаліть позначені печива.

На цьому етапі печива виглядають так, де . вказує на позицію, де печиво було видалено.

...
...
.bc
.bd
  1. Нічого не робити.

  2. Позначте печиво у другому стовпчику.

  3. Видаліть позначені печива.

На цьому етапі печива виглядають так, де . вказує на позицію, де печиво було видалено.

...
...
..c
..d
  1. Нічого не робити.

  2. Нічого не робити.

  3. Печива не позначені, тому завершіть процедуру.

Кінцева кількість печива, що залишилося, становить 2.

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

2 5
aaaaa
abcde

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

4

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

3 3
ooo
ooo
ooo

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

0

Коментарі

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