MATSUM  Matrix Summation
A N × N matrix is filled with numbers. BuggyD is analyzing the matrix, and he wants the sum of certain submatrices every now and then, so he wants a system where he can get his results from a query. Also, the matrix is dynamic, and the value of any cell can be changed with a command in such a system.
Assume that initially, all the cells of the matrix are filled with 0. Design such a system for BuggyD. Read the input format for further details.
Input
The first line of the input contains an integer t, the number of test cases. t test cases follow.
The first line of each test case contains a single integer N (1 <= N <= 1024), denoting the size of the matrix.
A list of commands follows, which will be in one of the following three formats (quotes are for clarity):
 "SET x y num"  Set the value at cell (x, y) to num (0 <= x, y < N).
 "SUM x1 y1 x2 y2"  Find and print the sum of the values in the rectangle from (x1, y1) to (x2, y2), inclusive. You may assume that x1 <= x2 and y1 <= y2, and that the result will fit in a signed 32bit integer.
 "END"  Indicates the end of the test case.
Output
For each test case, output one line for the answer to each "SUM" command. Print a blank line after each test case.
Example
Input: 1 4 SET 0 0 1 SUM 0 0 3 3 SET 2 2 12 SUM 2 2 2 2 SUM 2 2 3 3 SUM 0 0 2 2 END Output: 1 12 12 13
hide comments
aayush:
20110615 08:33:18
can this solved by Binary indexed tree 2D??? 

Hermano:
20110523 16:17:12
Too slow. How can I sum all elements of a matrix faster? I'm using Java. It looks like no one has solved this using java. 

Ðộc cô cầu bại:
20110514 15:16:18
@Avinash: Because you can't sum one square twice :)) 

Avinash:
20110325 04:04:33
why second line of output is not 24??


biQar:
20101005 17:27:36
@ Hy Trường Sơn & paddyHOD  u can use 2D bit for this problem !! ;) 

paddyHOD:
20100927 15:48:57
my algo is very slow,some please tell me which data structure should i take. Last edit: 20100927 15:49:22 

Hy Trường Sơn:
20090613 09:34:40
my algorithm is very slow. I use segment tree 

Brian Bi:
20090426 23:51:03
There is a blank line, but you can't see it because it's at the end. In case it wasn't clear, note that there is actually only one case shown in the sample (so there are no blank lines "between").


Omar ElAzazy:
20090426 18:26:28
"the result will fit in a signed 32bit integer." does that make num( number to put at place (x,y) ) never exceed signed 32bit integer limits ??

Added by:  Matthew Reeder 
Date:  20061029 
Time limit:  1.029s 
Source limit:  30000B 
Memory limit:  1536MB 
Cluster:  Cube (Intel G860) 
Languages:  All except: ERL JSRHINO NODEJS PERL6 VB.NET 
Resource:  AlKhawarizm 2006 