만드는 중입니다

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

격자와 쿼리

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

요약
0으로 채워진 N×N 격자에서 행이나 열 전체를 주어진 값으로 바꾸는 쿼리를 처리하고, 지정한 행이나 열의 합을 구합니다.
난이도

보통10점 중 6점

유형
세그먼트 트리, 구현
정답자
아직 제출이 없습니다

문제

크기 N×NN \times N인 격자가 주어진다. 각각의 칸에는 수가 하나씩 써 있으며, 초기 상태에서 모든 칸에 00이 쓰여 있다. 다음 쿼리를 처리하라.

  • 1 i v: ii번째 행의 모든 수를 vv로 변경한다. (1≤i≤N,1≤v≤109)(1 \le i \le N, 1 \le v \le 10^9)
  • 2 i v: ii번째 열의 모든 수를 vv로 변경한다. (1≤i≤N,1≤v≤109)(1 \le i \le N, 1 \le v \le 10^9)
  • 3 i: ii번째 행의 모든 수의 합을 출력한다. (1≤i≤N)(1 \le i \le N)
  • 4 i: ii번째 열의 모든 수의 합을 출력한다. (1≤i≤N)(1 \le i \le N)

11개 이상의 3 i 또는 4 i 쿼리가 존재함이 보장된다.

입력

첫 번째 줄에 격자의 크기 NN과 쿼리의 개수 QQ가 주어진다.

이후 QQ개의 줄에 걸쳐 각 쿼리가 주어진다.

출력

각각의 3 i와 4 i 쿼리에 대해 해당 행 또는 열의 수의 합을 한 줄에 하나씩 주어진 순서대로 출력한다.

제한

  • 1≤N,Q≤2×1051 \le N, Q \le 2 \times 10^5

예제1

  1. 예제 1

    입력
    5 7
    1 2 5
    2 3 10
    3 2
    4 3
    1 1 3
    2 5 7
    4 5
    
    예상 출력
    30
    50
    35