Given an array of N(N<=10^5) elements and 10^9<=A[i]<=10^9. Q(Q<=10^5) queries are there of two types:
I Thought of segment tree with lazy propagation but not able to understand what info to be stored in each node. Please suggest some approach for this problem. @freeloop asked 30 May '18, 19:34

I am not at all sure about this. Any counter case/feedback is appreciated! answered 30 May '18, 21:29
can u explain it in a more detail? i mean how would u handle the range part?
(31 May '18, 13:54)
Ohh nvm, I just figured that this approach won't work due to mismatch of water_level between children of a node. Thanks though :)
(31 May '18, 15:23)
Thanx for telling about this new data structure:)
(31 May '18, 16:15)
Glad my wrong approach/answer was helpful to someone xD
(31 May '18, 16:58)

Can you share question link? answered 30 May '18, 19:46

I think you will need a range min query and range max query based 2 segment trees and using that you can answer the queries. e.g. if max element in a range is less than 0 you return 0, if min element in a range is greater than 0 you return r  l + 1. else you go to the next level and see if one of the above condition holds. Use lazy propagation to update the maximum and minimum values of the 2 trees. That shouldn't be too hard. answered 30 May '18, 20:44
array A[]= 1 1 1 1 1 1.......1 1 and query [1:N] in this case complexity would be O(N) per query
(30 May '18, 20:59)
@vivek_1998299 can you suggest some optimization or some other approach??
(30 May '18, 21:17)
How will it be O(N logN) in the case Vivek pointed out?
(30 May '18, 21:58)
Yeah my bad. It is N + N / 2 + N / 4 ... < 2 * N
(30 May '18, 22:11)

Please provide some idea for this problem. No progress till now.
U can do this using parallel binary search.
Read this:
http://codeforces.com/blog/entry/45578?mobile=false
(Just see after which update query of first type ,a particular element becomes positive)
If u have any doubts,u can ask,i'll elaborate it.
@vivek_1998299 can u validate my approach?