I need help to solve this problem from an ICPC Regional Contest
It's easy to find the MEX difference of the subarray [l:r] in O(1), F(l, r). but what makes it hard is to find the maximum MEX difference among all subarrays inside range l:r

| # | User | Rating |
|---|---|---|
| 1 | Benq | 3676 |
| 2 | Kevin114514 | 3659 |
| 3 | jiangly | 3640 |
| 4 | turmax | 3450 |
| 5 | tourist | 3382 |
| 6 | strapple | 3360 |
| 7 | Um_nik | 3354 |
| 8 | squareOf105 | 3348 |
| 9 | maroonrk | 3312 |
| 10 | idontwannadothis…e | 3191 |
| # | User | Contrib. |
|---|---|---|
| 1 | Qingyu | 155 |
| 2 | nik_exists | 151 |
| 3 | maspy | 149 |
| 4 | AmShZ | 145 |
| 5 | Um_nik | 143 |
| 6 | Errichto | 139 |
| 7 | BledDest | 136 |
| 8 | adamant | 134 |
| 9 | maroonrk | 132 |
| 10 | cry | 130 |
I need help to solve this problem from an ICPC Regional Contest
It's easy to find the MEX difference of the subarray [l:r] in O(1), F(l, r). but what makes it hard is to find the maximum MEX difference among all subarrays inside range l:r

| Name |
|---|



can you provide the link of this problem ?
https://codeforces.me/group/Rilx5irOux/contest/530057/problem/J
here is my code
feel free to ask me anything !
Thank you
What can i do if i am not allowed to see the contest? Really wanna upsolve this now(
you need to join this group in order to see the contest
my approach: first, absolute values are hard to work with so let's remove them by calculating the max value of
MEX(P,a,b) - MEX(Q,a,b)over all a,b for a query (and similarlyMEX(Q,a,b) - MEX(P,a,b)) and answer is the max of these 2now to maximize
MEX(P,a,b) - MEX(Q,a,b), let's think of a naive solution first: let's loop over all valuesXwhichMEX(P,a,b)can be, and try to minimizeMEX(Q,a,b). Well observe that as you extend a subarray by 1 ([a,b] -> [a-1,b] or [a,b+1]) the mex can only increase, so we want to find the smallest subarray whereMEX(P,a,b)equalsXwell this can be done with a simple loop:
first calculate index:
then something like:
finally we can observe that these "minimal-mex" subarrays in a can only increase in length, so for a query, we can binary search the largest mex for which that corresponding "minimal-length" subarray is contained in the query. And also store
MEX(P,a,b) - MEX(Q,a,b)in an array, prefix-maxedThank You