UPDATEIT  Update the array !
You have an array containing n elements initially all 0. You need to do a number of update operations on it. In each update you specify l, r and val which are the starting index, ending index and value to be added. After each update, you add the 'val' to all elements from index l to r. After 'u' updates are over, there will be q queries each containing an index for which you have to print the element at that index.
Input
First line consists of t, the number of test cases. (1 <= t <= 10)
Each test case consists of "n u",number of elements in the array and the number of update operations, in the first line (1 <= n <= 10000 and 1 <= u <= 100000)
Then follow u lines each of the format "l r val" (0 <= l,r < n, 0 <= val <=10000)
Next line contains q, the number of queries. (1 <= q <= 10000)
Next q lines contain an index (0 <= index < n)
Output
For each test case, output the answers to the corresponding queries in separate lines.
Example
Input: 1
5 3
0 1 7
2 4 6
1 3 2
3
0
3
4
Output:
7
8
6
hide comments
dsri_99:
20171224 07:48:56


storyteller:
20171222 21:44:37
Difference array technique gives overall O(n) .


shubham_04_04:
20171219 17:32:46
I had written a code of complexity O(u+n+q) but still getting tle in java. Can anyone tell me why? 

kaneki_04:
20171118 13:32:59
Use the fact that updates occur before queries and you can do it without BIT ;) 

Ravi Upadhyay:
20171108 08:35:18
can be solved without using segment tree or BIT.


jha_gaurav98:
20171108 04:27:01
Don't forget to use scanf and printf 

javafreak:
20171027 23:11:08
Using Fewick Trees/Bit trees does the job . 

saanjh:
20171025 19:24:32
10 Lines Code. Only Basic Logic Needed:) 

frozen7:
20170913 20:06:17
First BIT question & AC in one go!


aditya9125:
20170910 12:43:11
Segment tree + lazy propagation would do. 
Added by:  Pandian 
Date:  20131015 
Time limit:  0.118s0.324s 
Source limit:  50000B 
Memory limit:  1536MB 
Cluster:  Cube (Intel G860) 
Languages:  All except: ASM64 
Resource:  Own 