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
ankit1cool: 2018-06-18 21:33:42

No BIT or segment tree needed

shithole: 2018-05-09 08:14:53

how to read and write to standard input output (console) in Javascript (Spidermonkey , Rhino). I tried using readline() but it does not work.

storyteller: 2017-12-22 21:44:37

Difference array technique gives overall O(n) .
O(1) ->For each update
O(n) -> Processing
O(1) ->Query

shubham_04_04: 2017-12-19 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: 2017-11-18 13:32:59

Use the fact that updates occur before queries and you can do it without BIT ;)

Ravi Upadhyay: 2017-11-08 08:35:18

can be solved without using segment tree or BIT.
O(q+n) simple solution is possible.

jha_gaurav98: 2017-11-08 04:27:01

Don't forget to use scanf and printf

javafreak: 2017-10-27 23:11:08

Using Fewick Trees/Bit trees does the job .

sauravchandra1: 2017-10-25 19:24:32

10 Lines Code. Only Basic Logic Needed:)

frozen7: 2017-09-13 20:06:17

First BIT question & AC in one go!
Using Range update and point query

Last edit: 2017-09-13 20:07:56

Added by:Pandian
Date:2013-10-15
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM64
Resource:Own