Samples —
3 1 4 2
4 2 1 3
According to the editorial we are taking pairs of indices which form a valid pair (Qj,Pi). All pairs are = (0,3)(1,0),(1,1)(1,2)(1,3)(2,0)(3,0)(3,1). [zero based indexing] Now we are sorting according to (i,-j).
New order of pairs is = (0,-3)(1,-3),(1,-2)(1,-1)(1,0)(2,0)(3,-1)(3,0). Now taking LIS considering only j's, we have ans as 4 but answer should be 2.
There is no clear explanation in the editorial, no C++ sample solution in the editorial and No english youtube video explaining this approach. I also tried to understand solutions of top rated coders but I think they have used fenwick tree.
Can anyone explain please I am stuck in this question since a day trying to understand this editorial.
You have to sort according to $$$(i, -j)$$$, but you have to find the LIS considering $$$j$$$ (not $$$-j$$$).
The LIS of $$$[3, 3, 2, 1, 0, 0, 1, 0]$$$ has length $$$2$$$.
Thanks!
Can you please explain the intuition behind using LIS dp approach in this question?
How I came up to the solution during the contest:
I actually didn't realize this is a LIS during the contest, but you could notice that while handling the second condition (i.e., after considering $$$a_i$$$ in increasing order, the $$$b_i$$$ should be increasing and as many as possible, so it's a LIS).