만드는 중입니다

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

거대한 체스판에서의 색 반전

시간 제한4초메모리 제한1024 MB

요약
n×n 체스판에서 행이나 열의 색을 뒤집을 때마다 같은 색으로 연결된 영역의 개수를 구합니다.
난이도

보통10점 중 6점

유형
수학, 구현
정답자
아직 제출이 없습니다

문제

사각형 칸들이 체스판처럼 nn개의 가로줄(행)과 nn개의 세로줄(열)로 놓여 있다. 행은 위에서 아래로 11번부터 nn번까지, 열은 왼쪽에서 오른쪽으로 11번부터 nn번까지 번호가 매겨져 있다.

처음에 칸들은 체스판처럼 칠해져 있다. 행 ii, 열 jj의 칸은 i+ji + j가 홀수이면 검은색, 짝수이면 흰색이다.

색 반전 연산이 차례로 수행된다. 연산은 다음 두 가지 중 하나이다.

행의 색 반전: 행 번호가 주어지면 그 행에 있는 모든 칸의 색을 반전한다. 흰 칸은 검은색이 되고, 검은 칸은 흰색이 된다.

열의 색 반전: 열 번호가 주어지면 그 열에 있는 모든 칸의 색을 반전한다. 흰 칸은 검은색이 되고, 검은 칸은 흰색이 된다.

각 연산을 수행한 뒤 영역의 개수를 센다. 영역은 같은 색의 칸들이 직접 또는 간접적으로 연결된 집합이다. 두 칸이 변을 공유하면 직접 연결된 것으로 본다.

입력

입력은 다음 형식의 테스트 케이스 하나로 이루어진다.

nn qq

operation_1operation\_1

⋮\vdots

operation_qoperation\_q

정수 nn은 행과 열의 개수이다 (1≤n≤5×1051 \le n \le 5 \times 10^5). 정수 qq는 연산의 개수이다 (1≤q≤5×1051 \le q \le 5 \times 10^5). 이어지는 qq개의 줄에 연산이 순서대로 주어진다. 각 줄은 다음 중 하나의 형식이다.

  • ROW ii: 행 ii의 색을 반전한다 (1≤i≤n1 \le i \le n).
  • COLUMN jj: 열 jj의 색을 반전한다 (1≤j≤n1 \le j \le n).

출력

qq개의 줄을 출력한다. kk번째 줄에는 kk번째 연산을 수행한 뒤의 영역 개수를 출력한다.

힌트

그림 F.1. 첫 번째 입력 예시의 설명 그림.

예제2

  1. 예제 1

    입력
    3 3
    ROW 2
    COLUMN 3
    ROW 2
    
    예상 출력
    3
    2
    6
    
  2. 예제 2

    입력
    200000 2
    ROW 1
    ROW 1
    
    예상 출력
    39999800000
    40000000000