만드는 중입니다

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

DS 팀 선발전

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

요약
각 갱신은 (x, y) 주변에 피라미드 모양의 가중치를 더하고, 각 질의는 직사각형 안 가중치의 합을 2^30으로 나눈 나머지로 구합니다.
난이도

어려움10점 중 9점

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

문제

제34회 국제 데이터 구조 올림피아드(International Olympiad in Data Structures)가 곧 열린다. 출전하려면 각국의 팀 선발전을 통과해야 한다. Cat 팀의 일원으로서 Cat 팀 선발전에서 이 문제를 풀어야 한다.

무한한 평면 위에 정수 좌표를 갖는 점이 무한히 많이 있으며, 각 점은 (x,y)(x, y)로 나타낼 수 있다. 처음에는 모든 점의 가중치가 00이다. 다음 형식의 연산을 qq번 수행해야 한다.

  • 1 xx yy dd ww: ∣X−x∣<d|X-x| < d이고 ∣Y−y∣<d|Y-y| < d를 만족하는 모든 점 (X,Y)(X,Y)의 가중치를 w⋅(d−max⁡(∣X−x∣,∣Y−y∣))w \cdot (d - \max(|X-x|,|Y-y|))만큼 증가시킨다.
  • 2 x1x_1 x2x_2 y1y_1 y2y_2: x1≤x≤x2x_1 \le x \le x_2이고 y1≤y≤y2y_1 \le y \le y_2를 만족하는 점 (x,y)(x,y)의 가중치 합을 출력한다. 합이 클 수 있으므로 2302^{30}으로 나눈 나머지를 출력한다.

입력

첫 줄에 연산의 개수 mm (1≤m≤1051 \le m \le 10^5)이 주어진다.

이어지는 mm개의 줄에는 다음 형식 중 하나로 정수들이 주어진다.

  • 1 xx yy dd ww (1≤x,y,d,w≤1081 \le x,y,d,w \le 10^8)
  • 2 x1x_1 x2x_2 y1y_1 y2y_2 (1≤x1≤x2≤1081 \le x_1 \le x_2 \le 10^8, 1≤y1≤y2≤1081 \le y_1 \le y_2 \le 10^8)

출력

형식 2 연산마다 구한 가중치 합을 한 줄에 하나씩 출력한다. 값은 2302^{30}으로 나눈 나머지이다.

예제1

  1. 예제 1

    입력
    4
    1 3 4 5 1
    2 1 4 3 5
    1 2 4 2 2
    2 4 5 3 5
    
    예상 출력
    46
    21