This problem is from https://acm.hdu.edu.cn/ I don't have the exact link to the problem though. 
I tried many approaches , either they are in efficient or way too complicated .
| # | 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 |
This problem is from https://acm.hdu.edu.cn/ I don't have the exact link to the problem though. 
I tried many approaches , either they are in efficient or way too complicated .
| Name |
|---|



I don't have the exact link to the problem though. ![ ](
How come? Could you add a bigger screenshot, so it would be clear where its from — to be sure it's not ongoing contest?
My approach is also linear, but I am not sure how to explain it.my approach was to work on individual element as subarray sum need to be > 0 , to be X as majority element, so assign X as +1 and rest element will contribute -1.so we could make consecutive blocks of 0 and >0 and apply running sum , before this we have to push all identical element in vector array storing their index.
But I guess this is your question
https://dmoj.ca/problem/dmopc20c2p5/editorial
This problem's link is: https://acm.hdu.edu.cn/showproblem.php?pid=7020