Описание

Ограничение по времени: 500 ms
Ограничение по памяти: 256 Mb

Ответы на вопросы

Задача: Reachable Pairs

Рассмотрим неориентированный граф с \(N\) вершинами, помеченными \(1\dots N\) и \(M\) ребрами (\(1\le N\le 2\cdot 10^5, 0\le M\le 4\cdot 10^5\)). Вам дается двоичная строка \(s_1s_2\dots s_N\). в момент времени \(t\) для каждого \(t\in [1,N]\),

  • Если \(s_t=0\), вершина \(t\) удаляется из графа.
  • если \(s_t=1\), вершина \(t\) удаляется из графа и рёбра добавляются каждой парой соседей вершины \(t\) непосредственно перед удалением.

Заметим, что в обоих случаях, когда вершина удаляется из графа, удаляются и все связанные с ней рёбра.

Посчитайте количество пар вершин, которые могут достичь друг друга через некоторую последовательность ребер перед каждым моментом времени \(1\ldots N\).

ФОРМАТ ВВОДА (с клавиатуры / stdin):

Первая строка содержит \(N\) и \(M\).

Вторая строка содержит битовую строку \(s\) длины \(N\).

Каждая из следующих \(M\) строк содержит два целых числа, обозначающих ребро графа.

ФОРМАТ ВЫВОДА (на экран / stdout):

\(N\) строк, количество пар перед каждым моментом времени.


Прикрепите файл с исходным кодом программы:
     
или введите исходный код на языке:


Правила оформления программ и список ошибок при автоматической проверке задач
           

Ваш ответ:

Загруженные файлы:


Нет

Примечание учителя: