만드는 중입니다

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

마법 체스판

시간 제한5초메모리 제한512 MB

요약
N×M 격자에서 수호자 위치를 기준으로 한 직사각형 영역의 최대공약수를 구하고, 직사각형 영역에 같은 값을 더하는 갱신을 처리합니다.
난이도

어려움10점 중 8점

유형
누적 합, 정수론, 세그먼트 트리, 행렬
정답자
아직 제출이 없습니다

문제

어린 Q는 이제 막 2학년이 되었고, 인기 있는 교육용 게임인 마법 체스판을 샀다. 이 게임은 NN행 MM열 격자에서 진행되며, 각 칸에는 양의 정수가 하나씩 적혀 있다. 체스판 수호자는 XX행 YY열에 있으며 절대 움직이지 않는다. 수호자는 두 가지 종류의 연산을 수행한다.

  1. 질의: 수호자의 현재 위치를 기준으로 네 방향으로 넓혀 크기가 가변인 직사각형을 만든다. 그 영역에 있는 모든 정수의 최대공약수를 구한다.
  2. 갱신: 체스판에서 직사각형 영역을 임의로 고르고, 그 영역의 모든 칸에 일정한 값을 한꺼번에 더한다.

입력

첫 줄에 판의 크기를 나타내는 양의 정수 NN과 MM이 주어진다. 둘째 줄에 수호자의 위치를 나타내는 양의 정수 XX와 YY가 주어진다. 셋째 줄에 연산의 개수 TT가 주어진다. 이어지는 NN개의 줄에는 각각 MM개의 정수가 있으며, 각 칸의 값을 나타낸다. 이어지는 TT개의 줄에는 연산이 하나씩 주어진다. 줄이 0으로 시작하면 질의이며, 뒤에 음이 아닌 정수 x1x_1, y1y_1, x2x_2, y2y_2가 온다. 이는 수호자 위치에서 위로 x1x_1행, 아래로 x2x_2행, 왼쪽으로 y1y_1열, 오른쪽으로 y2y_2열까지 질의 범위를 넓힌다는 뜻이다. 줄이 1로 시작하면 갱신이며, 뒤에 양의 정수 x1x_1, y1y_1, x2x_2, y2y_2와 정수 cc가 온다. 갱신 영역의 위아래 경계는 각각 x1x_1과 x2x_2이고, 왼쪽과 오른쪽 경계는 각각 y1y_1과 y2y_2이다. 영역 안의 모든 수는 동시에 cc만큼 증가한다. cc는 음수일 수 있다.

출력

각 질의마다 질의 영역의 최대공약수를 한 줄에 하나씩 출력한다.

제한

N×M≤500000N \times M \le 500000, T≤100000T \le 100000이다. 판의 모든 수는 262−12^{62} - 1 이하의 양의 정수이다.

예제1

  1. 예제 1

    입력
    2 2
    1 1
    4
    6 12
    18 24
    0 0 0 1 0
    1 1 1 1 2 6
    1 2 1 2 2 6
    0 0 0 1 1
    
    예상 출력
    6
    6