만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

도달 가능한 쌍

시간 제한2초메모리 제한2048 MB

요약
시점 t마다 s_t가 1이면 노드 t를 지우고 이웃끼리 간선을 잇며, 0이면 그냥 지울 때 직전에 서로 도달 가능한 노드 쌍의 수를 구합니다.
난이도

어려움10점 중 8점

유형
그래프, 유니온 파인드
정답자
아직 제출이 없습니다

문제

무방향 그래프에 11부터 NN까지 번호가 붙은 정점 NN개와 간선 MM개가 있다 (1≤N≤2⋅1051\le N\le 2\cdot 10^5, 0≤M≤4⋅1050\le M\le 4\cdot 10^5). 이진 문자열 s1s2…sNs_1s_2\dots s_N이 주어진다. t∈[1,N]t\in [1,N]인 각 시각 tt에 대해 다음 연산을 수행한다.

  • st=0s_t=0이면 정점 tt를 그래프에서 제거한다.
  • st=1s_t=1이면 정점 tt를 그래프에서 제거하고, 제거 직전에 정점 tt와 인접해 있던 정점들 중 임의의 두 정점 사이에 간선을 추가한다.

두 경우 모두 정점을 제거하면 그 정점에 연결된 간선도 함께 사라진다.

각 시각 tt 직전의 그래프에서 간선을 따라 서로 도달할 수 있는 정점 쌍의 개수를 구한다.

입력

첫째 줄에 NN과 MM이 주어진다.

둘째 줄에 길이가 NN인 이진 문자열 ss가 주어진다.

이후 MM개의 줄에 각각 간선의 양 끝점을 나타내는 정수 두 개가 주어진다.

출력

NN개의 줄을 출력한다. tt번째 줄에는 시각 tt 직전에 서로 도달할 수 있는 정점 쌍의 개수를 출력한다.

예제3

  1. 예제 1

    입력
    3 2
    111
    1 2
    1 3
    
    예상 출력
    3
    1
    0
    
  2. 예제 2

    입력
    3 2
    000
    1 2
    1 3
    
    예상 출력
    3
    0
    0
    
  3. 예제 3

    입력
    7 8
    1101101
    6 2
    1 2
    2 3
    6 3
    1 3
    1 7
    4 5
    2 7
    
    예상 출력
    11
    7
    4
    2
    1
    1
    0