이어서 질의 q, 네 개의 정수 X1, Y1, X2, Y2, 좌측 위 좌표를 포함하고, 각 도전 입력 오른쪽 좌표를 낮추고, n 행 및 m 열의 정수 행렬을 입력은 부분 행렬을 나타낸다.
각 서브 쿼리 출력 매트릭스 모든 숫자.
입력 형식
첫 번째 라인은 세 개의 정수 N, M, Q를 포함한다.
다음 N 라인은 각 행은 정수 m은 정수를 나타내는 행렬 포함한다.
다음 행 Q는 4 개 개의 정수 X1, Y1, X2, Y2를 포함하는 각각의 행은, 쿼리의기를 나타낸다.
출력 형식
Q 행의 합계는 각 행이 문의의 결과를 출력한다.
데이터 범위
. (1) ≤ N- , m ≤ 1,000
. 1 ≤ Q ≤ 200,000 ,
. 1 ≤ X 1. ≤ X 2 ≤ N- ,
1. ≤ Y 1. ≤ Y 2 ≤ m
- 1,000 ≤ 직사각형 어레이 내의 소자 화소 값 ≤ 1,000
샘플 입력 :
3 4 3
1 7 2 4
3 6 2 8
2 1 2 3
1 1 2 2
2 1 3 4
1 3 3 4
샘플 출력 :
17
27
21
AC代码
의 #pragma GCC의 최적화 (2) #INCLUDE <비트 / stdc ++ H.> 사용 스페이스 성병; 인라인 INT는 읽기 () { INT (X) = 0 , F = 1 ; 숯 C = getchar가 (); 반면 (c =! ' - ' && (c < ' 0 ' || C> ' 9 ' )), C = getchar가 (); 경우 (c == ' - ' ) F = - 1 , C = getchar가 (); 반면 (c> = ' 0 ' && C <= ' 9 ' ) (X) = (X) * 10 + C- ' 0 ' , C = getchar가 (); 형식 정의를 오래 오래 LL; CONST INT maxn = 1e3 + (10) ; int로 A [maxn] maxn]; INT S [maxn] maxn]; INT의 N, M, Q; int 형 ) (주 { CIN >> N >> >> m Q; 위한 ( INT 난 = 1 ; I <= N; I ++ ) { 대 ( INT J = 1 ; J <= m; J ++ ) { CIN >> A [I] [J] S [I] [J] = A [i]를 [J] + S [I- 1 ] [J] + S [I] [J = 1 ] -s [Ⅰ- 1 ] [J = 1 ]; } } INT X1, X2, Y1, Y2; INT 합 = 0 ; 위한 ( INT 난 = 0 ; I <Q를, I ++ ) { CIN >> >> X1, Y1, X2 >> >> Y2; 합 = S [X2] [Y2] -s [X1- 1 ] [Y2] -s [X2] Y1- 1 ] + S [X1- 1 ] [Y1- 1 ]; 의 printf ( " 가 % d \ n " , 합); } }